{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import seaborn as sns\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "import pandas as pd\n",
    "\n",
    "%matplotlib inline\n",
    "\n",
    "plt.rcParams['figure.figsize'] = (4, 4)\n",
    "plt.rcParams['figure.dpi'] = 150\n",
    "plt.rcParams['lines.linewidth'] = 3\n",
    "sns.set()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "tips = sns.load_dataset(\"tips\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>total_bill</th>\n",
       "      <th>tip</th>\n",
       "      <th>sex</th>\n",
       "      <th>smoker</th>\n",
       "      <th>day</th>\n",
       "      <th>time</th>\n",
       "      <th>size</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>16.99</td>\n",
       "      <td>1.01</td>\n",
       "      <td>Female</td>\n",
       "      <td>No</td>\n",
       "      <td>Sun</td>\n",
       "      <td>Dinner</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>10.34</td>\n",
       "      <td>1.66</td>\n",
       "      <td>Male</td>\n",
       "      <td>No</td>\n",
       "      <td>Sun</td>\n",
       "      <td>Dinner</td>\n",
       "      <td>3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>21.01</td>\n",
       "      <td>3.50</td>\n",
       "      <td>Male</td>\n",
       "      <td>No</td>\n",
       "      <td>Sun</td>\n",
       "      <td>Dinner</td>\n",
       "      <td>3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>23.68</td>\n",
       "      <td>3.31</td>\n",
       "      <td>Male</td>\n",
       "      <td>No</td>\n",
       "      <td>Sun</td>\n",
       "      <td>Dinner</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>24.59</td>\n",
       "      <td>3.61</td>\n",
       "      <td>Female</td>\n",
       "      <td>No</td>\n",
       "      <td>Sun</td>\n",
       "      <td>Dinner</td>\n",
       "      <td>4</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   total_bill   tip     sex smoker  day    time  size\n",
       "0       16.99  1.01  Female     No  Sun  Dinner     2\n",
       "1       10.34  1.66    Male     No  Sun  Dinner     3\n",
       "2       21.01  3.50    Male     No  Sun  Dinner     3\n",
       "3       23.68  3.31    Male     No  Sun  Dinner     2\n",
       "4       24.59  3.61  Female     No  Sun  Dinner     4"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "tips.head(5)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### get_dummies review"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>total_bill</th>\n",
       "      <th>size</th>\n",
       "      <th>day</th>\n",
       "      <th>Thur</th>\n",
       "      <th>Fri</th>\n",
       "      <th>Sat</th>\n",
       "      <th>Sun</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>193</th>\n",
       "      <td>15.48</td>\n",
       "      <td>2</td>\n",
       "      <td>Thur</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>90</th>\n",
       "      <td>28.97</td>\n",
       "      <td>2</td>\n",
       "      <td>Fri</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25</th>\n",
       "      <td>17.81</td>\n",
       "      <td>4</td>\n",
       "      <td>Sat</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>26</th>\n",
       "      <td>13.37</td>\n",
       "      <td>2</td>\n",
       "      <td>Sat</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>190</th>\n",
       "      <td>15.69</td>\n",
       "      <td>2</td>\n",
       "      <td>Sun</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "     total_bill  size   day  Thur  Fri  Sat  Sun\n",
       "193       15.48     2  Thur     1    0    0    0\n",
       "90        28.97     2   Fri     0    1    0    0\n",
       "25        17.81     4   Sat     0    0    1    0\n",
       "26        13.37     2   Sat     0    0    1    0\n",
       "190       15.69     2   Sun     0    0    0    1"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "three_features = ['total_bill', 'size', 'day']\n",
    "three_feature_data = pd.DataFrame(tips[three_features])\n",
    "dummies = pd.get_dummies(three_feature_data['day'])\n",
    "tips_w_dummies = pd.concat([three_feature_data, dummies], axis=1)\n",
    "\n",
    "tips_w_dummies.iloc[[193, 90, 25, 26, 190], :]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Using Text Features"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Letter Count Vectorizer"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "class LetterCountVectorizer():\n",
    "\n",
    "    def transform(self, texts):\n",
    "        all_text_phi = []\n",
    "        for text in texts:\n",
    "            text = text.lower()\n",
    "            this_text_phi = np.array([0] * 26)\n",
    "            for i, L in enumerate('abcdefghijklmnopqrstuvwxyz'):\n",
    "                this_text_phi[i] = text.count(L)\n",
    "            all_text_phi.append(this_text_phi)\n",
    "\n",
    "        return np.array(all_text_phi)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[3, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n",
       "        0, 0, 0, 0],\n",
       "       [1, 0, 0, 1, 5, 0, 0, 2, 3, 0, 0, 1, 5, 3, 3, 1, 0, 1, 1, 2, 0, 0,\n",
       "        0, 0, 2, 0]])"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "lcv = LetterCountVectorizer()\n",
    "example_phi = lcv.transform(\n",
    "    [\"aaabc\", \"To help his memory I mentioned my name.\"])\n",
    "example_phi"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Applying the LetterCountVectorizer to Real Data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [],
   "source": [
    "np.random.seed(23)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [],
   "source": [
    "f = open(r\"data_set\\mobydick.txt\", \"r\")\n",
    "mobydick = f.read()\n",
    "f.close()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'Call me Ishmael.  Some years ago--never mind how long\\nprecisely--having little or no money in my pur'"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "mobydick[0:100]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [],
   "source": [
    "mobydick_crude_lines = mobydick.split('.')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "7250"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "len(mobydick_crude_lines)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['Call me Ishmael',\n",
       " '  Some years ago--never mind how long\\nprecisely--having little or no money in my purse, and nothing\\nparticular to interest me on shore, I thought I would sail about a\\nlittle and see the watery part of the world',\n",
       " '  It is a way I have of\\ndriving off the spleen and regulating the circulation',\n",
       " \"  Whenever I\\nfind myself growing grim about the mouth; whenever it is a damp,\\ndrizzly November in my soul; whenever I find myself involuntarily\\npausing before coffin warehouses, and bringing up the rear of every\\nfuneral I meet; and especially whenever my hypos get such an upper\\nhand of me, that it requires a strong moral principle to prevent me\\nfrom deliberately stepping into the street, and methodically knocking\\npeople's hats off--then, I account it high time to get to sea as soon\\nas I can\",\n",
       " '  This is my substitute for pistol and ball']"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "mobydick_crude_lines[0:5]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [],
   "source": [
    "mobydick_train, mobydick_test = np.split(mobydick_crude_lines, [6000])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "To use our letter count vectorizer for classification, we'll need to create a dataset. Let's use \"Great Expectations\" as our second book. Lines from \"Moby Dick\" will be class 0, and lines from \"Great Expectations will be class 1. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [],
   "source": [
    "f = open(r\"data_set\\great_expectations.txt\", \"r\", encoding='utf-8')\n",
    "ge = f.read()\n",
    "f.close()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [],
   "source": [
    "ge_crude_lines = ge.split('.')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "6634"
      ]
     },
     "execution_count": 15,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "len(ge_crude_lines)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [],
   "source": [
    "ge_train, ge_test = np.split(ge_crude_lines, [5000])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "First we combine both books into one big array:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [],
   "source": [
    "both_books_train = np.concatenate([mobydick_train, ge_train])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Then we create `y`, which has the class for each sentence."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [],
   "source": [
    "y_train = np.concatenate(\n",
    "    [np.zeros(len(mobydick_train)),\n",
    "     np.ones(len(ge_train))])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "For example, line #3756 is from Moby Dick (class 0)."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'\\n\\n\\nA word concerning an incident in the last chapter'"
      ]
     },
     "execution_count": 19,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "both_books_train[3756]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.0"
      ]
     },
     "execution_count": 20,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "y_train[3756]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Training and Evaluating Models"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "To create a Logistic Regression model, we simply vectorize our books, then fit a model as usual."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [],
   "source": [
    "phi_both_books_train = lcv.transform(both_books_train)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([2, 0, 3, 2, 4, 1, 0, 2, 2, 0, 2, 2, 1, 1, 2, 1, 0, 3, 1, 2, 1, 0,\n",
       "       0, 0, 0, 0])"
      ]
     },
     "execution_count": 22,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "phi_both_books_train[10998]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "For example, line 3756 is turned into the letter count vector below:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([4, 0, 4, 2, 4, 0, 1, 2, 4, 0, 0, 1, 0, 7, 2, 1, 0, 3, 1, 4, 0, 0,\n",
       "       1, 0, 0, 0])"
      ]
     },
     "execution_count": 23,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "phi_both_books_train[3756]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(11000, 26)"
      ]
     },
     "execution_count": 24,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "phi_both_books_train.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "LogisticRegression(C=1.0, class_weight=None, dual=False, fit_intercept=True,\n",
       "                   intercept_scaling=1, l1_ratio=None, max_iter=10000,\n",
       "                   multi_class='auto', n_jobs=None, penalty='l2',\n",
       "                   random_state=None, solver='lbfgs', tol=0.0001, verbose=0,\n",
       "                   warm_start=False)"
      ]
     },
     "execution_count": 25,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from sklearn.linear_model import LogisticRegression\n",
    "\n",
    "lm = LogisticRegression(max_iter=10000)\n",
    "lm.fit(phi_both_books_train, y_train)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We can now use this model as usual:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([0., 0., 1., ..., 1., 1., 0.])"
      ]
     },
     "execution_count": 26,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "lm_predictions_train = lm.predict(phi_both_books_train)\n",
    "lm_predictions_train"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "For example, the model predicts that line 0 is from Moby Dick."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'Call me Ishmael'"
      ]
     },
     "execution_count": 27,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "both_books_train[0]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.0"
      ]
     },
     "execution_count": 28,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "lm_predictions_train[0]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.0"
      ]
     },
     "execution_count": 29,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "y_train[0]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.0"
      ]
     },
     "execution_count": 30,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "lm_predictions_train[10999]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "1.0"
      ]
     },
     "execution_count": 31,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "y_train[10999]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "It does this by computing the product of the vectorized sentence with the coefficients:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([4, 0, 4, 2, 4, 0, 1, 2, 4, 0, 0, 1, 0, 7, 2, 1, 0, 3, 1, 4, 0, 0,\n",
       "       1, 0, 0, 0])"
      ]
     },
     "execution_count": 32,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "lcv.transform([both_books_train[3756]])[0]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([0.33215655])"
      ]
     },
     "execution_count": 33,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "lm.intercept_"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([-0.05204517])"
      ]
     },
     "execution_count": 34,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.sum(lcv.transform([both_books_train[3756]])[0] * lm.coef_[0]) + lm.intercept_"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "metadata": {},
   "outputs": [],
   "source": [
    "def sigma(x):\n",
    "    return 1 / (1 + np.exp(-x))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.4870676699842183"
      ]
     },
     "execution_count": 36,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "sigma(-0.05174086)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The probability above is, of course, the same that we get from `predict_proba`."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[0.51300836, 0.48699164]])"
      ]
     },
     "execution_count": 37,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "lm.predict_proba(lcv.transform([both_books_train[3756]]))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Overall, the training accuracy is seemingly OK, but not great, at around 70%."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.6993636363636364"
      ]
     },
     "execution_count": 38,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from sklearn.metrics import accuracy_score\n",
    "accuracy_score(y_train, lm_predictions_train)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We can also look at the confusion matrix:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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2Fh5e3uratWqat26tSpUqFBYly0WvBsMLeohAMjGkT/eL+ohAMhBWb/833cptLOiJCkwMFBdu3YtzEsAAADYFPrp3gAAANeK0+/YPPDAA3mqb7FYNGPGDGcPAwAA3ICcHmzWrVuXa52ruxJbrdZcdygGAABwlNODzdCh2U+ajY+PV1RUlNasWaNz585p8ODBatq0qbOHAAAAblDXNNhcFR8fryeffFLTp09X586dnT0EAABwgyqSycM+Pj568803lZycrI8//rgohgAAAAxUZKuigoKCFBYWpjVr1hTVEAAAgGGKdLl3fHy8Lly4UJRDAAAABimyYPPrr7/qyJEjCg4OLqohAAAAwzh98vAHH3yQ7XtWq1VJSUk6cOCA/vzzT1ksFrVr187ZQygWotf/X1EPAUA2mo/7raiHACAHm1+7Pd9tnR5sJk2alOveNFePp6pWrZoGDhzo7CEAAIAblNODTZMmTXK+oJubSpUqpUaNGqlr167y8fFx9hAAAMANyunBZtasWc7uEgAAwCFOnzz8/PPP6/3331dcXJyzuwYAAMiR04PNypUr9fXXX8vT09PZXQMAAOTI6cEmMTFRwcHBcnNz+lMuAACAHDk92DRr1kx79+7VgQMHnN01AABAjizWq2uvnSQqKkqPPPKIzpw5o759+6phw4YqW7asvLy8sm1TsWJFZw6hWEhMKeoRAMgO+9gAxVux2semW7duSk5O1vnz5x064NJisWjHjh3OHgYAALgBOT3YnDlzxvazIzeDnHzDCAAA3MCcHmx++41bvAAAoGgUKNg88MADioiI0Msvv2x7LSQkpMCDAgAAyI8CBZt169YpNTXVWWMBAAAoEKcv9wYAACgqBBsAAGAMgg0AADAGwQYAABijwMu9t23bpttvz/8OgRaLRUuXLi3oMAAAAAoebJKSknT8+PF8t7dYLAUdAgAAgCQnBJvg4GB169bNGWMBAAAoEKcEm6FDhzpjLAAAAAXC5GEAAGAMgg0AADAGwQYAABiDYAMAAIxRoMnDb775pkqXLu2ssQAAABRIgYJN165dnTUOAACAAuNRFAAAMAbBBgAAGINgAwAAjEGwAQAAxiDYAAAAYxBsAACAMQg2AADAGAQbAABgDIINAAAwBsEGAAAYg2ADAACMQbABAADGINgAAABjEGwAAIAxCDYAAMAYBBsAAGAMgg0A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IF9GjRqlZs2aZfne2rVrNWTIEJ04cULDhw/XV199dY1H55i+ffuqQ4cO8vb2LnBfEydO1KlTp5wwKgAFwR0bAE7XrFkzDRs2TJK0adMmbdu2rYhHlLXAwEDddNNNqlChQlEPBYCTEGwAFIp27drZft6yZUsRjgTAjYRgA6BQ+Pn52X6Oi4uTJPXv318RERFasWKFPv74Y7Vs2VL16tVTx44dtX//flv9M2fO6O2331aHDh1Ur149NWjQQPfdd58+//xzXbp0Kdtrrl27VoMGDVKrVq1Ur149de/eXQsXLsy2/kcffaSIiAj17t07y/d///13DR48WLfeeqtq166tVq1a6ZlnnrG7A3W1j+PHj0u68oguIiJCH330kV1f1+ozATc65tgAKBTpJw2XL1/e7r3Jkyfr77//VqVKleTn56fY2FhVqVJFkrRx40YNGTJEMTExcnd3cRuDLQAABj5JREFUV5UqVWS1WrV9+3Zt27ZNP/74o6ZOnaqyZcva9TllyhS99957slqtKl26tMLCwnTo0CE999xzatq0aZ7GnpqaqhEjRujHH3+UJJUtW1bh4eE6evSofv75Z/3666/65JNP1Lp1awUHB6thw4batm2bkpKSVLlyZZUuXVrBwcG2/orDZwJuGFYAcNDRo0et4eHh1vDwcOtff/2VY90XX3zRGh4ebq1Vq5b19OnTVqvVau3Xr5+t/ZQpU2x1z549a7VardbIyEhr06ZNreHh4dZRo0ZZz58/b6tz+PBha48ePazh4eHWPn362F1rw4YN1vDwcGtERIR12rRp1tTUVKvVarUmJiZax44da7tmeHi4NTk52dbuww8/tIaHh1t79epl19+nn35qDQ8Pt9arV8+6cOFC6+XLl239jR492hoeHm6tX7++NSYmxtamTZs21vDwcOvcuXPt+rrWnwm40fEoCoDTJCYmaseOHRo9erR++OEHSdKAAQNUpkwZu3ohISF69NFHbeXAwEBJ0rRp0xQTE6O2bdtq7Nix8vf3t9WpVKmSPvnkE/n6+mrDhg1asWKF7b1JkyZJkrp27aqHH35YLi5XfrV5enpq1KhRat68ucOfISkpSVOmTJEkvfjii7rnnntksVhs/b366quqWrWq4uPj9fPPP+faX3H4TMCNhEdRAPLl6uZwOenRo4eefvrpTK83aNDAFhbSW7p0qSTp3nvvzbK/MmXK6P/bu3vQptowjONXpSHhGCUYEGppQiBJqatjwRZs6lZKlwoODQ4BlQwOIrhXB0Ht4hAiaBEcki2VEhULFfzAuvlBoiQB0dGmJG0k0fQdJMePpDav73Lek/9vCuc59+G5t4s8d05GR0eVzWa1srKisbEx1Wo1PX/+XNL3ENDJiRMn9OzZs133K0lra2uqVCpyOByamZlpW9+zZ48SiYQcDkfbEVsnVugJ6CUEGwB/JRwO//JW4b6+PjmdTnk8Hg0PD2tiYkLBYLBj7e+zJNL3AePWAO6NGze0uLjYsbZ1T6FQkCR9+vRJ9XpdkhQKhTrWjIyMdNnVj9mgQCAgl8vV8R6fz9fVs6zSE9BLCDYA/sqfXtC3G6fT2XatWq2an/P5/K7PqFQqkqSNjQ3z2t69ezve+/Pxz27K5bIkyTCMrmt2YpWegF5CsAFgCT+//TeTySgcDndV5/F4zM/VatWc1/nZn35OvdM+Wj9R/y+s0hPQSxgeBmAJ+/fvN4eM379/v+N9uVxOb9++Nb/VOHTokHlk9ObNm441796963ofgUBA0vcjqZ3Cw927dxWNRnXz5s0/PssqPQG9hGADwDLGx8clSXfu3FGz2Wxbr1Qqmpub0/T0tG7fvi1JcrlcOnr0qCTt+A/dqVSq6z0cOXJEhmGoXq8rk8m0rTebTaXTaT19+lRbW1vm9dYw9Pb2tuV6AnoJwQaAZcRiMRmGoZcvX+r8+fP6/Pmzufbx40fFYjGtr69r3759OnnypLkWj8flcDj08OFDXblyxRy8bTQaWlhY0P3797veg9vtVjQalSRdvnxZjx49Mte+fPmi+fl5vXr1Sm63W7Ozs+ZaayanNQhspZ6AXsKMDQDL8Pv9un79us6dO6elpSVls1kFg0E1Gg2VSiV9/fpVhmEokUjI6/WadeFwWJcuXdLFixeVTCaVSqXk8/n04cMHlctlRSIRPXjwoOt9nD17VsViUcvLyzp9+rQGBgZ04MABlUolbW5uyuVy6erVqzp48KBZc/jwYeXzeSWTSa2urioSiejMmTOW6QnoFQQbAJYyNjame/fu6datW3r8+LGKxaK+ffumwcFBjY6O6tSpUxoaGmqrm5qaUigUUjKZ1IsXL5TL5eT3+xWPx3Xs2LF/FQL6+/t17do1TU5OKp1O6/Xr18rlcvJ6vTp+/LhisZg5i9Ny4cIF1Wo1PXnyRIVC4Zf/vrJCT0Cv6Nv+/UAYAADgf4oZGwAAYBsEGwAAYBsEGwAAYBsEGwAAYBsEGwAAYBsEGwAAYBsEGwAAYBsEGwAAYBsEGwAAYBsEGwAAYBsEGwAAYBsEGwAAYBsEGwAAYBsEGwAAYBsEGwAAYBsEGwAAYBsEGwAAYBsEGwAAYBsEGwAAYBv/AILPmlHVQkGYAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<Figure size 600x600 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "from sklearn.metrics import confusion_matrix\n",
    "cm = confusion_matrix(y_train, lm_predictions_train)\n",
    "sns.heatmap(cm,\n",
    "            annot=True,\n",
    "            fmt=\"d\",\n",
    "            cmap=\"Blues\",\n",
    "            annot_kws={\"size\": 20},\n",
    "            cbar=False)\n",
    "plt.ylabel('True')\n",
    "plt.xlabel('Predicted')\n",
    "sns.set(font_scale=2)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Below, we compute the test accuracy and see it is about the same, at 70%."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 40,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.6952149791955617"
      ]
     },
     "execution_count": 40,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "both_books_test = np.concatenate([mobydick_test, ge_test])\n",
    "y_test = np.concatenate([np.zeros(len(mobydick_test)), np.ones(len(ge_test))])\n",
    "phi_both_books_test = lcv.transform(both_books_test)\n",
    "lm_predictions_test = lm.predict(phi_both_books_test)\n",
    "accuracy_score(y_test, lm_predictions_test)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "To get a visual picture of how such models, let's try fitting a decision tree with a really high min $\\Delta WG$."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 41,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "DecisionTreeClassifier(ccp_alpha=0.0, class_weight=None, criterion='gini',\n",
       "                       max_depth=None, max_features=None, max_leaf_nodes=None,\n",
       "                       min_impurity_decrease=0.003, min_impurity_split=None,\n",
       "                       min_samples_leaf=1, min_samples_split=2,\n",
       "                       min_weight_fraction_leaf=0.0, presort='deprecated',\n",
       "                       random_state=None, splitter='best')"
      ]
     },
     "execution_count": 41,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from sklearn.tree import DecisionTreeClassifier\n",
    "dt = DecisionTreeClassifier(min_impurity_decrease=0.003)\n",
    "dt.fit(phi_both_books_train, y_train)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 42,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.637"
      ]
     },
     "execution_count": 42,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "accuracy_score(y_train, dt.predict(phi_both_books_train))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 44,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/svg+xml": [
       "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\r\n",
       "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\r\n",
       " \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\r\n",
       "<!-- Generated by graphviz version 2.38.0 (20140413.2041)\r\n",
       " -->\r\n",
       "<!-- Title: Tree Pages: 1 -->\r\n",
       "<svg width=\"840pt\" height=\"671pt\"\r\n",
       " viewBox=\"0.00 0.00 839.50 671.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\r\n",
       "<g id=\"graph0\" class=\"graph\" transform=\"scale(1 1) rotate(0) translate(4 667)\">\r\n",
       "<title>Tree</title>\r\n",
       "<polygon fill=\"white\" stroke=\"none\" points=\"-4,4 -4,-667 835.5,-667 835.5,4 -4,4\"/>\r\n",
       "<!-- 0 -->\r\n",
       "<g id=\"node1\" class=\"node\"><title>0</title>\r\n",
       "<path fill=\"#fbeade\" stroke=\"black\" d=\"M578.5,-663C578.5,-663 456.5,-663 456.5,-663 450.5,-663 444.5,-657 444.5,-651 444.5,-651 444.5,-592 444.5,-592 444.5,-586 450.5,-580 456.5,-580 456.5,-580 578.5,-580 578.5,-580 584.5,-580 590.5,-586 590.5,-592 590.5,-592 590.5,-651 590.5,-651 590.5,-657 584.5,-663 578.5,-663\"/>\r\n",
       "<text text-anchor=\"start\" x=\"498\" y=\"-647.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">l ≤ 3.5</text>\r\n",
       "<text text-anchor=\"start\" x=\"480\" y=\"-632.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">gini = 0.496</text>\r\n",
       "<text text-anchor=\"start\" x=\"461.5\" y=\"-617.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">samples = 11000</text>\r\n",
       "<text text-anchor=\"start\" x=\"452.5\" y=\"-602.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">value = [6000, 5000]</text>\r\n",
       "<text text-anchor=\"start\" x=\"460\" y=\"-587.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">class = Moby Dick</text>\r\n",
       "</g>\r\n",
       "<!-- 1 -->\r\n",
       "<g id=\"node2\" class=\"node\"><title>1</title>\r\n",
       "<path fill=\"#cee7f9\" stroke=\"black\" d=\"M506.5,-544C506.5,-544 344.5,-544 344.5,-544 338.5,-544 332.5,-538 332.5,-532 332.5,-532 332.5,-473 332.5,-473 332.5,-467 338.5,-461 344.5,-461 344.5,-461 506.5,-461 506.5,-461 512.5,-461 518.5,-467 518.5,-473 518.5,-473 518.5,-532 518.5,-532 518.5,-538 512.5,-544 506.5,-544\"/>\r\n",
       "<text text-anchor=\"start\" x=\"403.5\" y=\"-528.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">q ≤ 1.5</text>\r\n",
       "<text text-anchor=\"start\" x=\"392\" y=\"-513.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">gini = 0.49</text>\r\n",
       "<text text-anchor=\"start\" x=\"374\" y=\"-498.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">samples = 5598</text>\r\n",
       "<text text-anchor=\"start\" x=\"360.5\" y=\"-483.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">value = [2402, 3196]</text>\r\n",
       "<text text-anchor=\"start\" x=\"340.5\" y=\"-468.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">class = Great Expectations</text>\r\n",
       "</g>\r\n",
       "<!-- 0&#45;&gt;1 -->\r\n",
       "<g id=\"edge1\" class=\"edge\"><title>0&#45;&gt;1</title>\r\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M485.581,-579.907C478.516,-570.923 470.961,-561.315 463.676,-552.05\"/>\r\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"466.295,-549.718 457.363,-544.021 460.792,-554.045 466.295,-549.718\"/>\r\n",
       "<text text-anchor=\"middle\" x=\"454.393\" y=\"-565.144\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">True</text>\r\n",
       "</g>\r\n",
       "<!-- 10 -->\r\n",
       "<g id=\"node11\" class=\"node\"><title>10</title>\r\n",
       "<path fill=\"#f2c09c\" stroke=\"black\" d=\"M670.5,-544C670.5,-544 548.5,-544 548.5,-544 542.5,-544 536.5,-538 536.5,-532 536.5,-532 536.5,-473 536.5,-473 536.5,-467 542.5,-461 548.5,-461 548.5,-461 670.5,-461 670.5,-461 676.5,-461 682.5,-467 682.5,-473 682.5,-473 682.5,-532 682.5,-532 682.5,-538 676.5,-544 670.5,-544\"/>\r\n",
       "<text text-anchor=\"start\" x=\"590\" y=\"-528.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">l ≤ 8.5</text>\r\n",
       "<text text-anchor=\"start\" x=\"572\" y=\"-513.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">gini = 0.445</text>\r\n",
       "<text text-anchor=\"start\" x=\"558\" y=\"-498.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">samples = 5402</text>\r\n",
       "<text text-anchor=\"start\" x=\"544.5\" y=\"-483.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">value = [3598, 1804]</text>\r\n",
       "<text text-anchor=\"start\" x=\"552\" y=\"-468.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">class = Moby Dick</text>\r\n",
       "</g>\r\n",
       "<!-- 0&#45;&gt;10 -->\r\n",
       "<g id=\"edge10\" class=\"edge\"><title>0&#45;&gt;10</title>\r\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M549.419,-579.907C556.484,-570.923 564.039,-561.315 571.324,-552.05\"/>\r\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"574.208,-554.045 577.637,-544.021 568.705,-549.718 574.208,-554.045\"/>\r\n",
       "<text text-anchor=\"middle\" x=\"580.607\" y=\"-565.144\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">False</text>\r\n",
       "</g>\r\n",
       "<!-- 2 -->\r\n",
       "<g id=\"node3\" class=\"node\"><title>2</title>\r\n",
       "<path fill=\"#c9e4f8\" stroke=\"black\" d=\"M336.5,-425C336.5,-425 174.5,-425 174.5,-425 168.5,-425 162.5,-419 162.5,-413 162.5,-413 162.5,-354 162.5,-354 162.5,-348 168.5,-342 174.5,-342 174.5,-342 336.5,-342 336.5,-342 342.5,-342 348.5,-348 348.5,-354 348.5,-354 348.5,-413 348.5,-413 348.5,-419 342.5,-425 336.5,-425\"/>\r\n",
       "<text text-anchor=\"start\" x=\"236\" y=\"-409.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">j ≤ 0.5</text>\r\n",
       "<text text-anchor=\"start\" x=\"218\" y=\"-394.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">gini = 0.488</text>\r\n",
       "<text text-anchor=\"start\" x=\"204\" y=\"-379.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">samples = 5517</text>\r\n",
       "<text text-anchor=\"start\" x=\"190.5\" y=\"-364.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">value = [2324, 3193]</text>\r\n",
       "<text text-anchor=\"start\" x=\"170.5\" y=\"-349.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">class = Great Expectations</text>\r\n",
       "</g>\r\n",
       "<!-- 1&#45;&gt;2 -->\r\n",
       "<g id=\"edge2\" class=\"edge\"><title>1&#45;&gt;2</title>\r\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M366.519,-460.907C352.41,-451.197 337.243,-440.758 322.79,-430.811\"/>\r\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"324.598,-427.807 314.376,-425.021 320.63,-433.573 324.598,-427.807\"/>\r\n",
       "</g>\r\n",
       "<!-- 9 -->\r\n",
       "<g id=\"node10\" class=\"node\"><title>9</title>\r\n",
       "<path fill=\"#e68641\" stroke=\"black\" d=\"M486,-417.5C486,-417.5 379,-417.5 379,-417.5 373,-417.5 367,-411.5 367,-405.5 367,-405.5 367,-361.5 367,-361.5 367,-355.5 373,-349.5 379,-349.5 379,-349.5 486,-349.5 486,-349.5 492,-349.5 498,-355.5 498,-361.5 498,-361.5 498,-405.5 498,-405.5 498,-411.5 492,-417.5 486,-417.5\"/>\r\n",
       "<text text-anchor=\"start\" x=\"395\" y=\"-402.3\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">gini = 0.071</text>\r\n",
       "<text text-anchor=\"start\" x=\"389\" y=\"-387.3\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">samples = 81</text>\r\n",
       "<text text-anchor=\"start\" x=\"388\" y=\"-372.3\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">value = [78, 3]</text>\r\n",
       "<text text-anchor=\"start\" x=\"375\" y=\"-357.3\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">class = Moby Dick</text>\r\n",
       "</g>\r\n",
       "<!-- 1&#45;&gt;9 -->\r\n",
       "<g id=\"edge9\" class=\"edge\"><title>1&#45;&gt;9</title>\r\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M427.929,-460.907C428.569,-450.204 429.262,-438.615 429.911,-427.776\"/>\r\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"433.412,-427.858 430.516,-417.667 426.425,-427.44 433.412,-427.858\"/>\r\n",
       "</g>\r\n",
       "<!-- 3 -->\r\n",
       "<g id=\"node4\" class=\"node\"><title>3</title>\r\n",
       "<path fill=\"#d7ebfa\" stroke=\"black\" d=\"M234.5,-306C234.5,-306 72.5,-306 72.5,-306 66.5,-306 60.5,-300 60.5,-294 60.5,-294 60.5,-235 60.5,-235 60.5,-229 66.5,-223 72.5,-223 72.5,-223 234.5,-223 234.5,-223 240.5,-223 246.5,-229 246.5,-235 246.5,-235 246.5,-294 246.5,-294 246.5,-300 240.5,-306 234.5,-306\"/>\r\n",
       "<text text-anchor=\"start\" x=\"129.5\" y=\"-290.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">m ≤ 0.5</text>\r\n",
       "<text text-anchor=\"start\" x=\"116\" y=\"-275.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">gini = 0.494</text>\r\n",
       "<text text-anchor=\"start\" x=\"102\" y=\"-260.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">samples = 4863</text>\r\n",
       "<text text-anchor=\"start\" x=\"88.5\" y=\"-245.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">value = [2161, 2702]</text>\r\n",
       "<text text-anchor=\"start\" x=\"68.5\" y=\"-230.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">class = Great Expectations</text>\r\n",
       "</g>\r\n",
       "<!-- 2&#45;&gt;3 -->\r\n",
       "<g id=\"edge3\" class=\"edge\"><title>2&#45;&gt;3</title>\r\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M220.112,-341.907C212.2,-332.832 203.734,-323.121 195.581,-313.769\"/>\r\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"198.035,-311.259 188.826,-306.021 192.759,-315.859 198.035,-311.259\"/>\r\n",
       "</g>\r\n",
       "<!-- 8 -->\r\n",
       "<g id=\"node9\" class=\"node\"><title>8</title>\r\n",
       "<path fill=\"#7bbeee\" stroke=\"black\" d=\"M438.5,-298.5C438.5,-298.5 276.5,-298.5 276.5,-298.5 270.5,-298.5 264.5,-292.5 264.5,-286.5 264.5,-286.5 264.5,-242.5 264.5,-242.5 264.5,-236.5 270.5,-230.5 276.5,-230.5 276.5,-230.5 438.5,-230.5 438.5,-230.5 444.5,-230.5 450.5,-236.5 450.5,-242.5 450.5,-242.5 450.5,-286.5 450.5,-286.5 450.5,-292.5 444.5,-298.5 438.5,-298.5\"/>\r\n",
       "<text text-anchor=\"start\" x=\"320\" y=\"-283.3\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">gini = 0.374</text>\r\n",
       "<text text-anchor=\"start\" x=\"310\" y=\"-268.3\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">samples = 654</text>\r\n",
       "<text text-anchor=\"start\" x=\"300.5\" y=\"-253.3\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">value = [163, 491]</text>\r\n",
       "<text text-anchor=\"start\" x=\"272.5\" y=\"-238.3\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">class = Great Expectations</text>\r\n",
       "</g>\r\n",
       "<!-- 2&#45;&gt;8 -->\r\n",
       "<g id=\"edge8\" class=\"edge\"><title>2&#45;&gt;8</title>\r\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M290.888,-341.907C300.893,-330.432 311.785,-317.938 321.807,-306.442\"/>\r\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"324.652,-308.505 328.585,-298.667 319.376,-303.905 324.652,-308.505\"/>\r\n",
       "</g>\r\n",
       "<!-- 4 -->\r\n",
       "<g id=\"node5\" class=\"node\"><title>4</title>\r\n",
       "<path fill=\"#fae8da\" stroke=\"black\" d=\"M119,-179.5C119,-179.5 12,-179.5 12,-179.5 6,-179.5 0,-173.5 0,-167.5 0,-167.5 0,-123.5 0,-123.5 0,-117.5 6,-111.5 12,-111.5 12,-111.5 119,-111.5 119,-111.5 125,-111.5 131,-117.5 131,-123.5 131,-123.5 131,-167.5 131,-167.5 131,-173.5 125,-179.5 119,-179.5\"/>\r\n",
       "<text text-anchor=\"start\" x=\"28\" y=\"-164.3\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">gini = 0.495</text>\r\n",
       "<text text-anchor=\"start\" x=\"14\" y=\"-149.3\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">samples = 1342</text>\r\n",
       "<text text-anchor=\"start\" x=\"8.5\" y=\"-134.3\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">value = [740, 602]</text>\r\n",
       "<text text-anchor=\"start\" x=\"8\" y=\"-119.3\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">class = Moby Dick</text>\r\n",
       "</g>\r\n",
       "<!-- 3&#45;&gt;4 -->\r\n",
       "<g id=\"edge4\" class=\"edge\"><title>3&#45;&gt;4</title>\r\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M122.969,-222.907C114.42,-211.542 105.121,-199.178 96.5435,-187.774\"/>\r\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"99.2542,-185.555 90.4461,-179.667 93.6599,-189.763 99.2542,-185.555\"/>\r\n",
       "</g>\r\n",
       "<!-- 5 -->\r\n",
       "<g id=\"node6\" class=\"node\"><title>5</title>\r\n",
       "<path fill=\"#bfdff7\" stroke=\"black\" d=\"M323.5,-187C323.5,-187 161.5,-187 161.5,-187 155.5,-187 149.5,-181 149.5,-175 149.5,-175 149.5,-116 149.5,-116 149.5,-110 155.5,-104 161.5,-104 161.5,-104 323.5,-104 323.5,-104 329.5,-104 335.5,-110 335.5,-116 335.5,-116 335.5,-175 335.5,-175 335.5,-181 329.5,-187 323.5,-187\"/>\r\n",
       "<text text-anchor=\"start\" x=\"222.5\" y=\"-171.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">t ≤ 3.5</text>\r\n",
       "<text text-anchor=\"start\" x=\"205\" y=\"-156.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">gini = 0.481</text>\r\n",
       "<text text-anchor=\"start\" x=\"191\" y=\"-141.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">samples = 3521</text>\r\n",
       "<text text-anchor=\"start\" x=\"177.5\" y=\"-126.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">value = [1421, 2100]</text>\r\n",
       "<text text-anchor=\"start\" x=\"157.5\" y=\"-111.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">class = Great Expectations</text>\r\n",
       "</g>\r\n",
       "<!-- 3&#45;&gt;5 -->\r\n",
       "<g id=\"edge5\" class=\"edge\"><title>3&#45;&gt;5</title>\r\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M184.378,-222.907C191.212,-213.923 198.521,-204.315 205.569,-195.05\"/>\r\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"208.408,-197.099 211.676,-187.021 202.836,-192.861 208.408,-197.099\"/>\r\n",
       "</g>\r\n",
       "<!-- 6 -->\r\n",
       "<g id=\"node7\" class=\"node\"><title>6</title>\r\n",
       "<path fill=\"#8ac5f0\" stroke=\"black\" d=\"M221.5,-68C221.5,-68 59.5,-68 59.5,-68 53.5,-68 47.5,-62 47.5,-56 47.5,-56 47.5,-12 47.5,-12 47.5,-6 53.5,-0 59.5,-0 59.5,-0 221.5,-0 221.5,-0 227.5,-0 233.5,-6 233.5,-12 233.5,-12 233.5,-56 233.5,-56 233.5,-62 227.5,-68 221.5,-68\"/>\r\n",
       "<text text-anchor=\"start\" x=\"103\" y=\"-52.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">gini = 0.412</text>\r\n",
       "<text text-anchor=\"start\" x=\"89\" y=\"-37.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">samples = 1347</text>\r\n",
       "<text text-anchor=\"start\" x=\"83.5\" y=\"-22.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">value = [391, 956]</text>\r\n",
       "<text text-anchor=\"start\" x=\"55.5\" y=\"-7.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">class = Great Expectations</text>\r\n",
       "</g>\r\n",
       "<!-- 5&#45;&gt;6 -->\r\n",
       "<g id=\"edge6\" class=\"edge\"><title>5&#45;&gt;6</title>\r\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M204.519,-103.726C196.023,-94.6054 187.01,-84.93 178.513,-75.8078\"/>\r\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"180.896,-73.2312 171.519,-68.2996 175.774,-78.0025 180.896,-73.2312\"/>\r\n",
       "</g>\r\n",
       "<!-- 7 -->\r\n",
       "<g id=\"node8\" class=\"node\"><title>7</title>\r\n",
       "<path fill=\"#ebf5fc\" stroke=\"black\" d=\"M425.5,-68C425.5,-68 263.5,-68 263.5,-68 257.5,-68 251.5,-62 251.5,-56 251.5,-56 251.5,-12 251.5,-12 251.5,-6 257.5,-0 263.5,-0 263.5,-0 425.5,-0 425.5,-0 431.5,-0 437.5,-6 437.5,-12 437.5,-12 437.5,-56 437.5,-56 437.5,-62 431.5,-68 425.5,-68\"/>\r\n",
       "<text text-anchor=\"start\" x=\"307\" y=\"-52.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">gini = 0.499</text>\r\n",
       "<text text-anchor=\"start\" x=\"293\" y=\"-37.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">samples = 2174</text>\r\n",
       "<text text-anchor=\"start\" x=\"279.5\" y=\"-22.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">value = [1030, 1144]</text>\r\n",
       "<text text-anchor=\"start\" x=\"259.5\" y=\"-7.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">class = Great Expectations</text>\r\n",
       "</g>\r\n",
       "<!-- 5&#45;&gt;7 -->\r\n",
       "<g id=\"edge7\" class=\"edge\"><title>5&#45;&gt;7</title>\r\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M280.481,-103.726C288.977,-94.6054 297.99,-84.93 306.487,-75.8078\"/>\r\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"309.226,-78.0025 313.481,-68.2996 304.104,-73.2312 309.226,-78.0025\"/>\r\n",
       "</g>\r\n",
       "<!-- 11 -->\r\n",
       "<g id=\"node12\" class=\"node\"><title>11</title>\r\n",
       "<path fill=\"#f6d3ba\" stroke=\"black\" d=\"M663.5,-417.5C663.5,-417.5 541.5,-417.5 541.5,-417.5 535.5,-417.5 529.5,-411.5 529.5,-405.5 529.5,-405.5 529.5,-361.5 529.5,-361.5 529.5,-355.5 535.5,-349.5 541.5,-349.5 541.5,-349.5 663.5,-349.5 663.5,-349.5 669.5,-349.5 675.5,-355.5 675.5,-361.5 675.5,-361.5 675.5,-405.5 675.5,-405.5 675.5,-411.5 669.5,-417.5 663.5,-417.5\"/>\r\n",
       "<text text-anchor=\"start\" x=\"565\" y=\"-402.3\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">gini = 0.478</text>\r\n",
       "<text text-anchor=\"start\" x=\"551\" y=\"-387.3\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">samples = 3670</text>\r\n",
       "<text text-anchor=\"start\" x=\"537.5\" y=\"-372.3\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">value = [2223, 1447]</text>\r\n",
       "<text text-anchor=\"start\" x=\"545\" y=\"-357.3\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">class = Moby Dick</text>\r\n",
       "</g>\r\n",
       "<!-- 10&#45;&gt;11 -->\r\n",
       "<g id=\"edge11\" class=\"edge\"><title>10&#45;&gt;11</title>\r\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M607.071,-460.907C606.431,-450.204 605.738,-438.615 605.089,-427.776\"/>\r\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"608.575,-427.44 604.484,-417.667 601.588,-427.858 608.575,-427.44\"/>\r\n",
       "</g>\r\n",
       "<!-- 12 -->\r\n",
       "<g id=\"node13\" class=\"node\"><title>12</title>\r\n",
       "<path fill=\"#eca26c\" stroke=\"black\" d=\"M819.5,-417.5C819.5,-417.5 705.5,-417.5 705.5,-417.5 699.5,-417.5 693.5,-411.5 693.5,-405.5 693.5,-405.5 693.5,-361.5 693.5,-361.5 693.5,-355.5 699.5,-349.5 705.5,-349.5 705.5,-349.5 819.5,-349.5 819.5,-349.5 825.5,-349.5 831.5,-355.5 831.5,-361.5 831.5,-361.5 831.5,-405.5 831.5,-405.5 831.5,-411.5 825.5,-417.5 819.5,-417.5\"/>\r\n",
       "<text text-anchor=\"start\" x=\"725\" y=\"-402.3\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">gini = 0.327</text>\r\n",
       "<text text-anchor=\"start\" x=\"711\" y=\"-387.3\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">samples = 1732</text>\r\n",
       "<text text-anchor=\"start\" x=\"701.5\" y=\"-372.3\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">value = [1375, 357]</text>\r\n",
       "<text text-anchor=\"start\" x=\"705\" y=\"-357.3\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">class = Moby Dick</text>\r\n",
       "</g>\r\n",
       "<!-- 10&#45;&gt;12 -->\r\n",
       "<g id=\"edge12\" class=\"edge\"><title>10&#45;&gt;12</title>\r\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M662.583,-460.907C678.311,-448.88 695.501,-435.735 711.12,-423.791\"/>\r\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"713.31,-426.522 719.128,-417.667 709.058,-420.961 713.31,-426.522\"/>\r\n",
       "</g>\r\n",
       "</g>\r\n",
       "</svg>\r\n"
      ],
      "text/plain": [
       "<graphviz.files.Source at 0x246427551c8>"
      ]
     },
     "execution_count": 44,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "import sklearn.tree\n",
    "import graphviz\n",
    "dot_data = sklearn.tree.export_graphviz(\n",
    "    dt,\n",
    "    out_file=None,\n",
    "    feature_names=\"abcdefghijklmnopqrstuvwxyz\",\n",
    "    class_names=[\"Moby Dick\", \"Great Expectations\"],\n",
    "    filled=True,\n",
    "    rounded=True,\n",
    "    special_characters=True)\n",
    "graph = graphviz.Source(dot_data)\n",
    "#graph.render(format=\"png\", filename=\"iris_tree\")\n",
    "graph"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Now in Chinese"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Suppose we try to do the same thing with Chinese language texts, e.g. 三國演義 "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 47,
   "metadata": {},
   "outputs": [],
   "source": [
    "f = open(r\"data_set\\三國演義.txt\", 'r', encoding='utf-8')\n",
    "three_kingdoms = f.read()\n",
    "f.close()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 48,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['第一回：宴桃園豪傑三結義，斬黃巾英雄首立功',\n",
       " '',\n",
       " '\\u3000\\u3000詞曰：',\n",
       " '',\n",
       " '\\u3000\\u3000滾滾長江東逝水，浪花淘盡英雄。是非成敗轉頭空：青山依舊在，幾度夕陽紅。白']"
      ]
     },
     "execution_count": 48,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "three_kingdoms_lines = three_kingdoms.split('\\n')\n",
    "three_kingdoms_lines[0:5]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "In principle, we could do the exact same thing as before, and create a giant list of features. Every Chinese character has a corresponding unicode number, e.g."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 49,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "傴\n"
     ]
    }
   ],
   "source": [
    "print(chr(20660))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 50,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "28414\n"
     ]
    }
   ],
   "source": [
    "print(ord('滾'))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "One way we can be a bit more efficient is to first \"fit\" our vectorizer. That is, we can identify all of the characters in our training set that are actually used and only count those letters."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 51,
   "metadata": {},
   "outputs": [],
   "source": [
    "class ChineseCharacterVectorizer():\n",
    "\n",
    "    def __init__(self):\n",
    "        self.vocabulary_ = {}\n",
    "\n",
    "    def fit(self, texts):\n",
    "        self.vocabulary_ = {}\n",
    "        i = 0\n",
    "        for text in texts:\n",
    "            for c in text:\n",
    "                if c not in self.vocabulary_:\n",
    "                    self.vocabulary_[c] = i\n",
    "                    i += 1\n",
    "\n",
    "    def transform(self, texts):\n",
    "        all_text_phi = []\n",
    "        for text in texts:\n",
    "            text = text.lower()\n",
    "            this_text_phi = np.array([0] * len(self.vocabulary_))\n",
    "            for c in text:\n",
    "                index = self.vocabulary_.get(c, None)\n",
    "                if index is not None:\n",
    "                    this_text_phi[index] += 1\n",
    "            all_text_phi.append(this_text_phi)\n",
    "\n",
    "        return np.array(all_text_phi)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 52,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'第': 0,\n",
       " '一': 1,\n",
       " '回': 2,\n",
       " '：': 3,\n",
       " '宴': 4,\n",
       " '桃': 5,\n",
       " '園': 6,\n",
       " '豪': 7,\n",
       " '傑': 8,\n",
       " '三': 9,\n",
       " '結': 10,\n",
       " '義': 11,\n",
       " '，': 12,\n",
       " '斬': 13,\n",
       " '黃': 14,\n",
       " '巾': 15,\n",
       " '英': 16,\n",
       " '雄': 17,\n",
       " '首': 18,\n",
       " '立': 19,\n",
       " '功': 20,\n",
       " '\\u3000': 21,\n",
       " '滾': 22,\n",
       " '長': 23,\n",
       " '江': 24,\n",
       " '東': 25,\n",
       " '逝': 26,\n",
       " '水': 27,\n",
       " '浪': 28,\n",
       " '花': 29,\n",
       " '淘': 30,\n",
       " '盡': 31,\n",
       " '。': 32,\n",
       " '是': 33,\n",
       " '非': 34,\n",
       " '成': 35,\n",
       " '敗': 36,\n",
       " '轉': 37,\n",
       " '頭': 38,\n",
       " '空': 39,\n",
       " '青': 40,\n",
       " '山': 41,\n",
       " '依': 42,\n",
       " '舊': 43,\n",
       " '在': 44,\n",
       " '幾': 45,\n",
       " '度': 46,\n",
       " '夕': 47,\n",
       " '陽': 48,\n",
       " '紅': 49,\n",
       " '白': 50}"
      ]
     },
     "execution_count": 52,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "ccv = ChineseCharacterVectorizer()\n",
    "ccv.fit([\n",
    "    '第一回：宴桃園豪傑三結義，斬黃巾英雄首立功', '\\u3000\\u3000滾滾長江東逝水，浪花淘盡英雄。是非成敗轉頭空：青山依舊在，幾度夕陽紅。白'\n",
    "])\n",
    "ccv.vocabulary_"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 53,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,\n",
       "        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n",
       "        0, 0, 0, 0, 0, 0, 0],\n",
       "       [0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 1, 1, 0, 0, 0, 2,\n",
       "        2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n",
       "        1, 1, 1, 1, 1, 1, 1],\n",
       "       [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n",
       "        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n",
       "        1, 0, 0, 0, 0, 0, 0]])"
      ]
     },
     "execution_count": 53,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "ccv.transform([\n",
    "    '第一回：宴桃園豪傑三結義，斬黃巾英雄首立功', '\\u3000\\u3000滾滾長江東逝水，浪花淘盡英雄。是非成敗轉頭空：青山依舊在，幾度夕陽紅。白',\n",
    "    '网易云课堂，是网易公司打造的在线实用技能学习平台，该平台于2012年12月底正式上线，'\n",
    "])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Words"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 54,
   "metadata": {},
   "outputs": [],
   "source": [
    "np.random.seed(23)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Intuitively, it feels like words might be a better way to predict sentences than letters. For example, the word \"whale\" is probably much more likely to appear in a line from Moby Dick than a line from Great Expectations."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We can do roughly the same thing as we did for Chinese characters, namely:\n",
    "1. Fit the vectorizer by assigning a number to every observed word.\n",
    "2. Count the number of each word.\n",
    "\n",
    "Luckily, this already exists in sklearn as `sklearn.feature_extraction.text.CountVectorizer`."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 62,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "CountVectorizer(analyzer='word', binary=False, decode_error='strict',\n",
       "                dtype=<class 'numpy.int64'>, encoding='utf-8', input='content',\n",
       "                lowercase=True, max_df=1.0, max_features=None, min_df=1,\n",
       "                ngram_range=(1, 1), preprocessor=None, stop_words=None,\n",
       "                strip_accents=None, token_pattern='(?u)\\\\b\\\\w\\\\w+\\\\b',\n",
       "                tokenizer=None, vocabulary=None)"
      ]
     },
     "execution_count": 62,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from sklearn.feature_extraction.text import CountVectorizer\n",
    "\n",
    "wcv = CountVectorizer()\n",
    "wcv.fit(both_books_train)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "First we train the word count vectorizer, as shown above. Below, we can see the number corresponding to each word, e.g. \"call\" is assigned the number 2385. In other words $\\phi_{2385}$ will be count of the word \"call\".\n",
    "\n",
    "Note: If you're running this notebook yourself, you might end up with different numbers than I did on my computer."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 63,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'call': 2385,\n",
       " 'me': 10143,\n",
       " 'ishmael': 8908,\n",
       " 'some': 15000,\n",
       " 'years': 18443,\n",
       " 'ago': 499,\n",
       " 'never': 10854,\n",
       " 'mind': 10346,\n",
       " 'how': 8014,\n",
       " 'long': 9723,\n",
       " 'precisely': 12357,\n",
       " 'having': 7618,\n",
       " 'little': 9644,\n",
       " 'or': 11235,\n",
       " 'no': 10896,\n",
       " 'money': 10486,\n",
       " 'in': 8335,\n",
       " 'my': 10707,\n",
       " 'purse': 12777,\n",
       " 'and': 721,\n",
       " 'nothing': 10963,\n",
       " 'particular': 11571,\n",
       " 'to': 16531,\n",
       " 'interest': 8732,\n",
       " 'on': 11180,\n",
       " 'shore': 14482,\n",
       " 'thought': 16373,\n",
       " 'would': 18342,\n",
       " 'sail': 13870,\n",
       " 'about': 198,\n",
       " 'see': 14185,\n",
       " 'the': 16292,\n",
       " 'watery': 17914,\n",
       " 'part': 11558,\n",
       " 'of': 11123,\n",
       " 'world': 18320,\n",
       " 'it': 8929,\n",
       " 'is': 8904,\n",
       " 'way': 17928,\n",
       " 'have': 7615,\n",
       " 'driving': 5111,\n",
       " 'off': 11124,\n",
       " 'spleen': 15201,\n",
       " 'regulating': 13205,\n",
       " 'circulation': 2890,\n",
       " 'whenever': 18052,\n",
       " 'find': 6316,\n",
       " 'myself': 10710,\n",
       " 'growing': 7352,\n",
       " 'grim': 7305,\n",
       " 'mouth': 10602,\n",
       " 'damp': 4124,\n",
       " 'drizzly': 5112,\n",
       " 'november': 10983,\n",
       " 'soul': 15042,\n",
       " 'involuntarily': 8860,\n",
       " 'pausing': 11653,\n",
       " 'before': 1531,\n",
       " 'coffin': 3119,\n",
       " 'warehouses': 17859,\n",
       " 'bringing': 2148,\n",
       " 'up': 17421,\n",
       " 'rear': 13038,\n",
       " 'every': 5751,\n",
       " 'funeral': 6822,\n",
       " 'meet': 10198,\n",
       " 'especially': 5687,\n",
       " 'hypos': 8126,\n",
       " 'get': 7007,\n",
       " 'such': 15741,\n",
       " 'an': 693,\n",
       " 'upper': 17435,\n",
       " 'hand': 7482,\n",
       " 'that': 16289,\n",
       " 'requires': 13402,\n",
       " 'strong': 15615,\n",
       " 'moral': 10531,\n",
       " 'principle': 12489,\n",
       " 'prevent': 12460,\n",
       " 'from': 6779,\n",
       " 'deliberately': 4331,\n",
       " 'stepping': 15439,\n",
       " 'into': 8792,\n",
       " 'street': 15574,\n",
       " 'methodically': 10280,\n",
       " 'knocking': 9223,\n",
       " 'people': 11753,\n",
       " 'hats': 7603,\n",
       " 'then': 16303,\n",
       " 'account': 258,\n",
       " 'high': 7804,\n",
       " 'time': 16489,\n",
       " 'sea': 14132,\n",
       " 'as': 1020,\n",
       " 'soon': 15017,\n",
       " 'can': 2408,\n",
       " 'this': 16358,\n",
       " 'substitute': 15708,\n",
       " 'for': 6565,\n",
       " 'pistol': 11997,\n",
       " 'ball': 1319,\n",
       " 'with': 18237,\n",
       " 'philosophical': 11891,\n",
       " 'flourish': 6476,\n",
       " 'cato': 2586,\n",
       " 'throws': 16419,\n",
       " 'himself': 7824,\n",
       " 'upon': 17434,\n",
       " 'his': 7841,\n",
       " 'sword': 16012,\n",
       " 'quietly': 12869,\n",
       " 'take': 16075,\n",
       " 'ship': 14443,\n",
       " 'there': 16311,\n",
       " 'surprising': 15902,\n",
       " 'if': 8164,\n",
       " 'they': 16323,\n",
       " 'but': 2318,\n",
       " 'knew': 9206,\n",
       " 'almost': 612,\n",
       " 'all': 577,\n",
       " 'men': 10221,\n",
       " 'their': 16297,\n",
       " 'degree': 4319,\n",
       " 'other': 11291,\n",
       " 'cherish': 2779,\n",
       " 'very': 17612,\n",
       " 'nearly': 10794,\n",
       " 'same': 13906,\n",
       " 'feelings': 6204,\n",
       " 'towards': 16647,\n",
       " 'ocean': 11105,\n",
       " 'now': 10984,\n",
       " 'your': 18475,\n",
       " 'insular': 8687,\n",
       " 'city': 2920,\n",
       " 'manhattoes': 9974,\n",
       " 'belted': 1608,\n",
       " 'round': 13748,\n",
       " 'by': 2341,\n",
       " 'wharves': 18034,\n",
       " 'indian': 8441,\n",
       " 'isles': 8914,\n",
       " 'coral': 3703,\n",
       " 'reefs': 13146,\n",
       " 'commerce': 3232,\n",
       " 'surrounds': 15911,\n",
       " 'her': 7751,\n",
       " 'surf': 15883,\n",
       " 'right': 13619,\n",
       " 'left': 9460,\n",
       " 'streets': 15575,\n",
       " 'you': 18470,\n",
       " 'waterward': 17913,\n",
       " 'its': 8936,\n",
       " 'extreme': 5990,\n",
       " 'downtown': 5023,\n",
       " 'battery': 1442,\n",
       " 'where': 18053,\n",
       " 'noble': 10901,\n",
       " 'mole': 10471,\n",
       " 'washed': 17886,\n",
       " 'waves': 17920,\n",
       " 'cooled': 3684,\n",
       " 'breezes': 2095,\n",
       " 'which': 18071,\n",
       " 'few': 6267,\n",
       " 'hours': 7997,\n",
       " 'previous': 12463,\n",
       " 'were': 18003,\n",
       " 'out': 11304,\n",
       " 'sight': 14578,\n",
       " 'land': 9304,\n",
       " 'look': 9733,\n",
       " 'at': 1117,\n",
       " 'crowds': 3967,\n",
       " 'water': 17907,\n",
       " 'gazers': 6950,\n",
       " 'circumambulate': 2892,\n",
       " 'dreamy': 5079,\n",
       " 'sabbath': 13839,\n",
       " 'afternoon': 472,\n",
       " 'go': 7127,\n",
       " 'corlears': 3719,\n",
       " 'hook': 7935,\n",
       " 'coenties': 3112,\n",
       " 'slip': 14784,\n",
       " 'thence': 16304,\n",
       " 'whitehall': 18106,\n",
       " 'northward': 10942,\n",
       " 'what': 18035,\n",
       " 'do': 4932,\n",
       " 'posted': 12269,\n",
       " 'like': 9570,\n",
       " 'silent': 14599,\n",
       " 'sentinels': 14258,\n",
       " 'around': 979,\n",
       " 'town': 16657,\n",
       " 'stand': 15343,\n",
       " 'thousands': 16380,\n",
       " 'mortal': 10550,\n",
       " 'fixed': 6374,\n",
       " 'reveries': 13557,\n",
       " 'leaning': 9427,\n",
       " 'against': 476,\n",
       " 'spiles': 15166,\n",
       " 'seated': 14152,\n",
       " 'pier': 11936,\n",
       " 'heads': 7644,\n",
       " 'looking': 9739,\n",
       " 'over': 11344,\n",
       " 'bulwarks': 2256,\n",
       " 'ships': 14449,\n",
       " 'china': 2813,\n",
       " 'aloft': 614,\n",
       " 'rigging': 13618,\n",
       " 'striving': 15609,\n",
       " 'still': 15468,\n",
       " 'better': 1680,\n",
       " 'seaward': 14155,\n",
       " 'peep': 11707,\n",
       " 'these': 16321,\n",
       " 'are': 941,\n",
       " 'landsmen': 9314,\n",
       " 'week': 17977,\n",
       " 'days': 4187,\n",
       " 'pent': 11752,\n",
       " 'lath': 9369,\n",
       " 'plaster': 12060,\n",
       " 'tied': 16464,\n",
       " 'counters': 3789,\n",
       " 'nailed': 10723,\n",
       " 'benches': 1611,\n",
       " 'clinched': 3019,\n",
       " 'desks': 4498,\n",
       " 'green': 7274,\n",
       " 'fields': 6279,\n",
       " 'gone': 7160,\n",
       " 'here': 7760,\n",
       " 'come': 3196,\n",
       " 'more': 10540,\n",
       " 'pacing': 11423,\n",
       " 'straight': 15539,\n",
       " 'seemingly': 14196,\n",
       " 'bound': 1989,\n",
       " 'dive': 4902,\n",
       " 'strange': 15552,\n",
       " 'will': 18169,\n",
       " 'content': 3583,\n",
       " 'them': 16299,\n",
       " 'extremest': 5993,\n",
       " 'limit': 9591,\n",
       " 'loitering': 9710,\n",
       " 'under': 17084,\n",
       " 'shady': 14338,\n",
       " 'lee': 9454,\n",
       " 'yonder': 18466,\n",
       " 'not': 10954,\n",
       " 'suffice': 15759,\n",
       " 'must': 10682,\n",
       " 'just': 9116,\n",
       " 'nigh': 10878,\n",
       " 'possibly': 12266,\n",
       " 'without': 18250,\n",
       " 'falling': 6060,\n",
       " 'miles': 10324,\n",
       " 'leagues': 9420,\n",
       " 'inlanders': 8600,\n",
       " 'lanes': 9316,\n",
       " 'alleys': 588,\n",
       " 'avenues': 1213,\n",
       " 'north': 10939,\n",
       " 'east': 5247,\n",
       " 'south': 15056,\n",
       " 'west': 18007,\n",
       " 'yet': 18455,\n",
       " 'unite': 17228,\n",
       " 'tell': 16191,\n",
       " 'does': 4948,\n",
       " 'magnetic': 9889,\n",
       " 'virtue': 17695,\n",
       " 'needles': 10815,\n",
       " 'compasses': 3285,\n",
       " 'those': 16370,\n",
       " 'attract': 1167,\n",
       " 'thither': 16361,\n",
       " 'once': 11181,\n",
       " 'say': 13988,\n",
       " 'country': 3797,\n",
       " 'lakes': 9287,\n",
       " 'any': 806,\n",
       " 'path': 11626,\n",
       " 'please': 12092,\n",
       " 'ten': 16214,\n",
       " 'one': 11184,\n",
       " 'carries': 2527,\n",
       " 'down': 5018,\n",
       " 'dale': 4110,\n",
       " 'leaves': 9444,\n",
       " 'pool': 12204,\n",
       " 'stream': 15570,\n",
       " 'magic': 9879,\n",
       " 'let': 9501,\n",
       " 'most': 10564,\n",
       " 'absent': 207,\n",
       " 'minded': 10347,\n",
       " 'be': 1454,\n",
       " 'plunged': 12131,\n",
       " 'deepest': 4283,\n",
       " 'man': 9953,\n",
       " 'legs': 9475,\n",
       " 'set': 14295,\n",
       " 'feet': 6207,\n",
       " 'going': 7153,\n",
       " 'he': 7632,\n",
       " 'infallibly': 8518,\n",
       " 'lead': 9409,\n",
       " 'region': 13196,\n",
       " 'should': 14494,\n",
       " 'ever': 5747,\n",
       " 'athirst': 1122,\n",
       " 'great': 7263,\n",
       " 'american': 663,\n",
       " 'desert': 4477,\n",
       " 'try': 16861,\n",
       " 'experiment': 5915,\n",
       " 'caravan': 2492,\n",
       " 'happen': 7518,\n",
       " 'supplied': 15861,\n",
       " 'metaphysical': 10273,\n",
       " 'professor': 12557,\n",
       " 'yes': 18453,\n",
       " 'knows': 9237,\n",
       " 'meditation': 10189,\n",
       " 'wedded': 17968,\n",
       " 'artist': 1015,\n",
       " 'desires': 4492,\n",
       " 'paint': 11453,\n",
       " 'dreamiest': 5074,\n",
       " 'shadiest': 14331,\n",
       " 'quietest': 12868,\n",
       " 'enchanting': 5471,\n",
       " 'bit': 1740,\n",
       " 'romantic': 13716,\n",
       " 'landscape': 9312,\n",
       " 'valley': 17507,\n",
       " 'saco': 13846,\n",
       " 'chief': 2796,\n",
       " 'element': 5360,\n",
       " 'employs': 5453,\n",
       " 'trees': 16767,\n",
       " 'each': 5216,\n",
       " 'hollow': 7900,\n",
       " 'trunk': 16852,\n",
       " 'hermit': 7772,\n",
       " 'crucifix': 3975,\n",
       " 'within': 18249,\n",
       " 'sleeps': 14753,\n",
       " 'meadow': 10144,\n",
       " 'sleep': 14745,\n",
       " 'cattle': 2590,\n",
       " 'cottage': 3763,\n",
       " 'goes': 7149,\n",
       " 'sleepy': 14754,\n",
       " 'smoke': 14862,\n",
       " 'deep': 4279,\n",
       " 'distant': 4863,\n",
       " 'woodlands': 18299,\n",
       " 'winds': 18194,\n",
       " 'mazy': 10142,\n",
       " 'reaching': 13010,\n",
       " 'overlapping': 11369,\n",
       " 'spurs': 15275,\n",
       " 'mountains': 10591,\n",
       " 'bathed': 1433,\n",
       " 'hill': 7815,\n",
       " 'side': 14568,\n",
       " 'blue': 1857,\n",
       " 'though': 16372,\n",
       " 'picture': 11926,\n",
       " 'lies': 9545,\n",
       " 'thus': 16438,\n",
       " 'tranced': 16700,\n",
       " 'pine': 11973,\n",
       " 'tree': 16766,\n",
       " 'shakes': 14347,\n",
       " 'sighs': 14577,\n",
       " 'shepherd': 14420,\n",
       " 'head': 7633,\n",
       " 'vain': 17500,\n",
       " 'unless': 17238,\n",
       " 'eye': 6001,\n",
       " 'him': 7821,\n",
       " 'visit': 17706,\n",
       " 'prairies': 12327,\n",
       " 'june': 9104,\n",
       " 'when': 18050,\n",
       " 'scores': 14061,\n",
       " 'wade': 17769,\n",
       " 'knee': 9201,\n",
       " 'among': 672,\n",
       " 'tiger': 16469,\n",
       " 'lilies': 9581,\n",
       " 'charm': 2723,\n",
       " 'wanting': 17844,\n",
       " 'drop': 5118,\n",
       " 'niagara': 10867,\n",
       " 'cataract': 2573,\n",
       " 'sand': 13916,\n",
       " 'travel': 16740,\n",
       " 'thousand': 16379,\n",
       " 'why': 18134,\n",
       " 'did': 4604,\n",
       " 'poor': 12206,\n",
       " 'poet': 12143,\n",
       " 'tennessee': 16228,\n",
       " 'suddenly': 15748,\n",
       " 'receiving': 13066,\n",
       " 'two': 16958,\n",
       " 'handfuls': 7490,\n",
       " 'silver': 14606,\n",
       " 'deliberate': 4329,\n",
       " 'whether': 18066,\n",
       " 'buy': 2338,\n",
       " 'coat': 3087,\n",
       " 'sadly': 13857,\n",
       " 'needed': 10811,\n",
       " 'invest': 8834,\n",
       " 'pedestrian': 11698,\n",
       " 'trip': 16808,\n",
       " 'rockaway': 13692,\n",
       " 'beach': 1455,\n",
       " 'robust': 13689,\n",
       " 'healthy': 7652,\n",
       " 'boy': 2023,\n",
       " 'crazy': 3877,\n",
       " 'first': 6348,\n",
       " 'voyage': 17754,\n",
       " 'passenger': 11592,\n",
       " 'yourself': 18478,\n",
       " 'feel': 6201,\n",
       " 'mystical': 10716,\n",
       " 'vibration': 17631,\n",
       " 'told': 16558,\n",
       " 'old': 11159,\n",
       " 'persians': 11827,\n",
       " 'hold': 7884,\n",
       " 'holy': 7905,\n",
       " 'greeks': 7273,\n",
       " 'give': 7049,\n",
       " 'separate': 14260,\n",
       " 'deity': 4322,\n",
       " 'own': 11407,\n",
       " 'brother': 2187,\n",
       " 'jove': 9065,\n",
       " 'surely': 15881,\n",
       " 'meaning': 10154,\n",
       " 'deeper': 4282,\n",
       " 'story': 15525,\n",
       " 'narcissus': 10745,\n",
       " 'who': 18122,\n",
       " 'because': 1495,\n",
       " 'could': 3770,\n",
       " 'grasp': 7229,\n",
       " 'tormenting': 16608,\n",
       " 'mild': 10318,\n",
       " 'image': 8200,\n",
       " 'saw': 13980,\n",
       " 'fountain': 6684,\n",
       " 'was': 17884,\n",
       " 'drowned': 5128,\n",
       " 'we': 17931,\n",
       " 'ourselves': 11303,\n",
       " 'rivers': 13667,\n",
       " 'oceans': 11107,\n",
       " 'ungraspable': 17190,\n",
       " 'phantom': 11874,\n",
       " 'life': 9548,\n",
       " 'key': 9155,\n",
       " 'am': 641,\n",
       " 'habit': 7416,\n",
       " 'begin': 1546,\n",
       " 'grow': 7350,\n",
       " 'hazy': 7631,\n",
       " 'eyes': 6009,\n",
       " 'conscious': 3492,\n",
       " 'lungs': 9828,\n",
       " 'mean': 10152,\n",
       " 'inferred': 8537,\n",
       " 'needs': 10820,\n",
       " 'rag': 12915,\n",
       " 'something': 15006,\n",
       " 'besides': 1649,\n",
       " 'passengers': 11593,\n",
       " 'sick': 14564,\n",
       " 'quarrelsome': 12829,\n",
       " 'don': 4978,\n",
       " 'nights': 10884,\n",
       " 'enjoy': 5558,\n",
       " 'themselves': 16302,\n",
       " 'much': 10624,\n",
       " 'general': 6961,\n",
       " 'thing': 16341,\n",
       " 'nor': 10936,\n",
       " 'salt': 13895,\n",
       " 'commodore': 3243,\n",
       " 'captain': 2481,\n",
       " 'cook': 3678,\n",
       " 'abandon': 152,\n",
       " 'glory': 7110,\n",
       " 'distinction': 4869,\n",
       " 'offices': 11137,\n",
       " 'abominate': 187,\n",
       " 'honourable': 7924,\n",
       " 'respectable': 13456,\n",
       " 'toils': 16555,\n",
       " 'trials': 16784,\n",
       " 'tribulations': 16791,\n",
       " 'kind': 9176,\n",
       " 'whatsoever': 18037,\n",
       " 'quite': 12878,\n",
       " 'care': 2500,\n",
       " 'taking': 16079,\n",
       " 'barques': 1397,\n",
       " 'brigs': 2134,\n",
       " 'schooners': 14045,\n",
       " 'confess': 3421,\n",
       " 'considerable': 3507,\n",
       " 'being': 1572,\n",
       " 'sort': 15036,\n",
       " 'officer': 11134,\n",
       " 'board': 1875,\n",
       " 'somehow': 15002,\n",
       " 'fancied': 6080,\n",
       " 'broiling': 2172,\n",
       " 'fowls': 6692,\n",
       " 'broiled': 2171,\n",
       " 'judiciously': 9087,\n",
       " 'buttered': 2326,\n",
       " 'judgmatically': 9082,\n",
       " 'salted': 13897,\n",
       " 'peppered': 11756,\n",
       " 'speak': 15099,\n",
       " 'respectfully': 13459,\n",
       " 'reverentially': 13555,\n",
       " 'fowl': 6691,\n",
       " 'than': 16283,\n",
       " 'idolatrous': 8162,\n",
       " 'dotings': 4998,\n",
       " 'egyptians': 5324,\n",
       " 'ibis': 8131,\n",
       " 'roasted': 13678,\n",
       " 'river': 13666,\n",
       " 'horse': 7972,\n",
       " 'mummies': 10652,\n",
       " 'creatures': 3891,\n",
       " 'huge': 8032,\n",
       " 'bake': 1304,\n",
       " 'houses': 8005,\n",
       " 'pyramids': 12802,\n",
       " 'simple': 14615,\n",
       " 'sailor': 13876,\n",
       " 'mast': 10085,\n",
       " 'plumb': 12121,\n",
       " 'forecastle': 6583,\n",
       " 'royal': 13769,\n",
       " 'true': 16844,\n",
       " 'rather': 12986,\n",
       " 'order': 11247,\n",
       " 'make': 9925,\n",
       " 'jump': 9098,\n",
       " 'spar': 15084,\n",
       " 'grasshopper': 7235,\n",
       " 'may': 10131,\n",
       " 'unpleasant': 17286,\n",
       " 'enough': 5578,\n",
       " 'touches': 16638,\n",
       " 'sense': 14243,\n",
       " 'honour': 7923,\n",
       " 'particularly': 11572,\n",
       " 'established': 5702,\n",
       " 'family': 6072,\n",
       " 'van': 17516,\n",
       " 'rensselaers': 13320,\n",
       " 'randolphs': 12955,\n",
       " 'hardicanutes': 7537,\n",
       " 'putting': 12796,\n",
       " 'tar': 16121,\n",
       " 'pot': 12279,\n",
       " 'been': 1524,\n",
       " 'lording': 9753,\n",
       " 'schoolmaster': 14041,\n",
       " 'making': 9931,\n",
       " 'tallest': 16093,\n",
       " 'boys': 2026,\n",
       " 'awe': 1234,\n",
       " 'transition': 16725,\n",
       " 'keen': 9135,\n",
       " 'assure': 1098,\n",
       " 'decoction': 4262,\n",
       " 'seneca': 14237,\n",
       " 'stoics': 15494,\n",
       " 'enable': 5462,\n",
       " 'grin': 7311,\n",
       " 'bear': 1471,\n",
       " 'even': 5738,\n",
       " 'wears': 17954,\n",
       " 'hunks': 8083,\n",
       " 'orders': 11250,\n",
       " 'broom': 2185,\n",
       " 'sweep': 15975,\n",
       " 'decks': 4251,\n",
       " 'indignity': 8459,\n",
       " 'amount': 675,\n",
       " 'weighed': 17985,\n",
       " 'scales': 13998,\n",
       " 'new': 10857,\n",
       " 'testament': 16266,\n",
       " 'think': 16343,\n",
       " 'archangel': 919,\n",
       " 'gabriel': 6854,\n",
       " 'thinks': 16347,\n",
       " 'anything': 810,\n",
       " 'less': 9497,\n",
       " 'promptly': 12601,\n",
       " 'obey': 11029,\n",
       " 'instance': 8667,\n",
       " 'ain': 530,\n",
       " 'slave': 14737,\n",
       " 'well': 17994,\n",
       " 'however': 8017,\n",
       " 'captains': 2482,\n",
       " 'thump': 16426,\n",
       " 'punch': 12740,\n",
       " 'satisfaction': 13951,\n",
       " 'knowing': 9233,\n",
       " 'everybody': 5752,\n",
       " 'else': 5385,\n",
       " 'served': 14289,\n",
       " 'either': 5333,\n",
       " 'physical': 11908,\n",
       " 'point': 12148,\n",
       " 'view': 17652,\n",
       " 'so': 14920,\n",
       " 'universal': 17230,\n",
       " 'passed': 11591,\n",
       " 'hands': 7499,\n",
       " 'rub': 13773,\n",
       " 'shoulder': 14495,\n",
       " 'blades': 1769,\n",
       " 'again': 475,\n",
       " 'always': 640,\n",
       " 'paying': 11662,\n",
       " 'trouble': 16832,\n",
       " 'whereas': 18054,\n",
       " 'pay': 11661,\n",
       " 'single': 14635,\n",
       " 'penny': 11750,\n",
       " 'heard': 7658,\n",
       " 'contrary': 3623,\n",
       " 'difference': 4614,\n",
       " 'between': 1683,\n",
       " 'paid': 11445,\n",
       " 'act': 307,\n",
       " 'perhaps': 11789,\n",
       " 'uncomfortable': 17048,\n",
       " 'infliction': 8554,\n",
       " 'orchard': 11243,\n",
       " 'thieves': 16334,\n",
       " 'entailed': 5589,\n",
       " 'us': 17456,\n",
       " 'compare': 3280,\n",
       " 'urbane': 17449,\n",
       " 'activity': 314,\n",
       " 'receives': 13065,\n",
       " 'really': 13029,\n",
       " 'marvellous': 10068,\n",
       " 'considering': 3513,\n",
       " 'earnestly': 5230,\n",
       " 'believe': 1583,\n",
       " 'root': 13727,\n",
       " 'earthly': 5236,\n",
       " 'ills': 8190,\n",
       " 'monied': 10490,\n",
       " 'enter': 5593,\n",
       " 'heaven': 7688,\n",
       " 'ah': 514,\n",
       " 'cheerfully': 2765,\n",
       " 'consign': 3514,\n",
       " 'perdition': 11771,\n",
       " 'finally': 6313,\n",
       " 'wholesome': 18125,\n",
       " 'exercise': 5853,\n",
       " 'pure': 12761,\n",
       " 'air': 532,\n",
       " 'fore': 6580,\n",
       " 'castle': 2563,\n",
       " 'deck': 4250,\n",
       " 'far': 6092,\n",
       " 'prevalent': 12459,\n",
       " 'astern': 1104,\n",
       " 'violate': 17687,\n",
       " 'pythagorean': 12806,\n",
       " 'maxim': 10130,\n",
       " 'quarter': 12832,\n",
       " 'gets': 7008,\n",
       " 'atmosphere': 1127,\n",
       " 'second': 14162,\n",
       " 'sailors': 13877,\n",
       " 'breathes': 2081,\n",
       " 'commonalty': 3246,\n",
       " 'leaders': 9413,\n",
       " 'many': 10009,\n",
       " 'things': 16342,\n",
       " 'suspect': 15925,\n",
       " 'wherefore': 18057,\n",
       " 'after': 471,\n",
       " 'repeatedly': 13335,\n",
       " 'smelt': 14845,\n",
       " 'merchant': 10240,\n",
       " 'whaling': 18031,\n",
       " 'invisible': 8848,\n",
       " 'police': 12165,\n",
       " 'fates': 6133,\n",
       " 'has': 7580,\n",
       " 'constant': 3534,\n",
       " 'surveillance': 15913,\n",
       " 'secretly': 14170,\n",
       " 'dogs': 4955,\n",
       " 'influences': 8557,\n",
       " 'unaccountable': 16989,\n",
       " 'answer': 771,\n",
       " 'doubtless': 5010,\n",
       " 'formed': 6640,\n",
       " 'grand': 7210,\n",
       " 'programme': 12576,\n",
       " 'providence': 12675,\n",
       " 'drawn': 5066,\n",
       " 'came': 2402,\n",
       " 'brief': 2121,\n",
       " 'interlude': 8748,\n",
       " 'solo': 14993,\n",
       " 'extensive': 5962,\n",
       " 'performances': 11782,\n",
       " 'bill': 1714,\n",
       " 'run': 13816,\n",
       " 'contested': 3590,\n",
       " 'election': 5355,\n",
       " 'presidency': 12431,\n",
       " 'united': 17229,\n",
       " 'states': 15381,\n",
       " 'bloody': 1840,\n",
       " 'battle': 1443,\n",
       " 'affghanistan': 435,\n",
       " 'cannot': 2441,\n",
       " 'exactly': 5774,\n",
       " 'stage': 15311,\n",
       " 'managers': 9960,\n",
       " 'put': 12794,\n",
       " 'shabby': 14326,\n",
       " 'others': 11292,\n",
       " 'magnificent': 9894,\n",
       " 'parts': 11583,\n",
       " 'tragedies': 16686,\n",
       " 'short': 14487,\n",
       " 'easy': 5251,\n",
       " 'genteel': 6974,\n",
       " 'comedies': 3197,\n",
       " 'jolly': 9049,\n",
       " 'farces': 6093,\n",
       " 'recall': 13059,\n",
       " 'circumstances': 2905,\n",
       " 'springs': 15263,\n",
       " 'motives': 10575,\n",
       " 'cunningly': 4025,\n",
       " 'presented': 12417,\n",
       " 'various': 17529,\n",
       " 'disguises': 4771,\n",
       " 'induced': 8485,\n",
       " 'performing': 11784,\n",
       " 'cajoling': 2369,\n",
       " 'delusion': 4359,\n",
       " 'choice': 2827,\n",
       " 'resulting': 13498,\n",
       " 'unbiased': 17019,\n",
       " 'freewill': 6725,\n",
       " 'discriminating': 4745,\n",
       " 'judgment': 9083,\n",
       " 'overwhelming': 11400,\n",
       " 'idea': 8142,\n",
       " 'whale': 18016,\n",
       " 'portentous': 12232,\n",
       " 'mysterious': 10712,\n",
       " 'monster': 10503,\n",
       " 'roused': 13756,\n",
       " 'curiosity': 4043,\n",
       " 'wild': 18160,\n",
       " 'seas': 14146,\n",
       " 'rolled': 13707,\n",
       " 'island': 8910,\n",
       " 'bulk': 2242,\n",
       " 'undeliverable': 17082,\n",
       " 'nameless': 10731,\n",
       " 'perils': 11794,\n",
       " 'attending': 1152,\n",
       " 'marvels': 10070,\n",
       " 'patagonian': 11616,\n",
       " 'sights': 14581,\n",
       " 'sounds': 15049,\n",
       " 'helped': 7735,\n",
       " 'sway': 15963,\n",
       " 'wish': 18224,\n",
       " 'inducements': 8486,\n",
       " 'tormented': 16607,\n",
       " 'everlasting': 5748,\n",
       " 'itch': 8932,\n",
       " 'remote': 13297,\n",
       " 'love': 9777,\n",
       " 'forbidden': 6571,\n",
       " 'barbarous': 1369,\n",
       " 'coasts': 3086,\n",
       " 'ignoring': 8179,\n",
       " 'good': 7163,\n",
       " 'quick': 12854,\n",
       " 'perceive': 11760,\n",
       " 'horror': 7970,\n",
       " 'social': 14936,\n",
       " 'since': 14623,\n",
       " 'friendly': 6751,\n",
       " 'terms': 16243,\n",
       " 'inmates': 8603,\n",
       " 'place': 12024,\n",
       " 'lodges': 9695,\n",
       " 'reason': 13042,\n",
       " 'welcome': 17991,\n",
       " 'flood': 6464,\n",
       " 'gates': 6933,\n",
       " 'wonder': 18276,\n",
       " 'swung': 16018,\n",
       " 'open': 11199,\n",
       " 'conceits': 3357,\n",
       " 'swayed': 15964,\n",
       " 'purpose': 12771,\n",
       " 'floated': 6456,\n",
       " 'inmost': 8604,\n",
       " 'endless': 5506,\n",
       " 'processions': 12528,\n",
       " 'mid': 10294,\n",
       " 'hooded': 7931,\n",
       " 'snow': 14908,\n",
       " 'chapter': 2702,\n",
       " 'carpet': 2522,\n",
       " 'bag': 1292,\n",
       " 'stuffed': 15648,\n",
       " 'shirt': 14454,\n",
       " 'tucked': 16868,\n",
       " 'arm': 968,\n",
       " 'started': 15364,\n",
       " 'cape': 2461,\n",
       " 'horn': 7958,\n",
       " 'pacific': 11421,\n",
       " 'quitting': 12882,\n",
       " 'manhatto': 9973,\n",
       " 'duly': 5168,\n",
       " 'arrived': 993,\n",
       " 'bedford': 1512,\n",
       " 'saturday': 13956,\n",
       " 'night': 10879,\n",
       " 'december': 4236,\n",
       " 'disappointed': 4694,\n",
       " 'learning': 9436,\n",
       " 'packet': 11427,\n",
       " 'nantucket': 10735,\n",
       " 'had': 7429,\n",
       " 'already': 626,\n",
       " 'sailed': 13871,\n",
       " 'offer': 11129,\n",
       " 'till': 16482,\n",
       " 'following': 6542,\n",
       " 'monday': 10485,\n",
       " 'young': 18471,\n",
       " 'candidates': 2425,\n",
       " 'pains': 11452,\n",
       " 'penalties': 11726,\n",
       " 'stop': 15510,\n",
       " 'embark': 5400,\n",
       " 'related': 13229,\n",
       " 'doing': 4956,\n",
       " 'made': 9870,\n",
       " 'craft': 3853,\n",
       " 'fine': 6319,\n",
       " 'boisterous': 1906,\n",
       " 'everything': 5753,\n",
       " 'connected': 3478,\n",
       " 'famous': 6075,\n",
       " 'amazingly': 648,\n",
       " 'pleased': 12093,\n",
       " 'late': 9362,\n",
       " 'gradually': 7203,\n",
       " 'monopolising': 10497,\n",
       " 'business': 2309,\n",
       " 'matter': 10118,\n",
       " 'behind': 1563,\n",
       " 'original': 11265,\n",
       " 'tyre': 16967,\n",
       " 'carthage': 2536,\n",
       " 'dead': 4193,\n",
       " 'stranded': 15550,\n",
       " 'aboriginal': 190,\n",
       " 'whalemen': 18023,\n",
       " 'red': 13128,\n",
       " 'sally': 13893,\n",
       " 'canoes': 2444,\n",
       " 'chase': 2734,\n",
       " 'leviathan': 9516,\n",
       " 'too': 16584,\n",
       " 'adventurous': 408,\n",
       " 'sloop': 14796,\n",
       " 'forth': 6653,\n",
       " 'partly': 11578,\n",
       " 'laden': 9274,\n",
       " 'imported': 8291,\n",
       " 'cobblestones': 3094,\n",
       " 'throw': 16416,\n",
       " 'whales': 18026,\n",
       " 'discover': 4732,\n",
       " 'risk': 13660,\n",
       " 'harpoon': 7559,\n",
       " 'bowsprit': 2018,\n",
       " 'day': 4184,\n",
       " 'another': 770,\n",
       " 'ere': 5660,\n",
       " 'destined': 4522,\n",
       " 'port': 12228,\n",
       " 'became': 1494,\n",
       " 'concernment': 3374,\n",
       " 'eat': 5252,\n",
       " 'meanwhile': 10163,\n",
       " 'dubious': 5152,\n",
       " 'nay': 10788,\n",
       " 'dark': 4151,\n",
       " 'dismal': 4791,\n",
       " 'bitingly': 1745,\n",
       " 'cold': 3140,\n",
       " 'cheerless': 2770,\n",
       " 'anxious': 805,\n",
       " 'grapnels': 7225,\n",
       " 'sounded': 15045,\n",
       " 'pocket': 12137,\n",
       " 'only': 11187,\n",
       " 'brought': 2191,\n",
       " 'pieces': 11933,\n",
       " 'wherever': 18063,\n",
       " 'said': 13869,\n",
       " 'stood': 15505,\n",
       " 'middle': 10296,\n",
       " 'dreary': 5081,\n",
       " 'shouldering': 14497,\n",
       " 'comparing': 3282,\n",
       " 'gloom': 7103,\n",
       " 'darkness': 4158,\n",
       " 'wisdom': 18218,\n",
       " 'conclude': 3382,\n",
       " 'lodge': 9692,\n",
       " 'dear': 4206,\n",
       " 'sure': 15880,\n",
       " 'inquire': 8620,\n",
       " 'price': 12467,\n",
       " 'halting': 7462,\n",
       " 'steps': 15440,\n",
       " 'paced': 11419,\n",
       " 'sign': 14582,\n",
       " 'crossed': 3954,\n",
       " 'harpoons': 7565,\n",
       " 'looked': 9734,\n",
       " 'expensive': 5910,\n",
       " 'further': 6844,\n",
       " 'bright': 2127,\n",
       " 'windows': 18191,\n",
       " 'fish': 6349,\n",
       " 'inn': 8605,\n",
       " 'fervent': 6245,\n",
       " 'rays': 13003,\n",
       " 'seemed': 14194,\n",
       " 'melted': 10210,\n",
       " 'packed': 11426,\n",
       " 'ice': 8132,\n",
       " 'house': 7998,\n",
       " 'everywhere': 5756,\n",
       " 'congealed': 3457,\n",
       " 'frost': 6786,\n",
       " 'lay': 9397,\n",
       " 'inches': 8360,\n",
       " 'thick': 16324,\n",
       " 'hard': 7532,\n",
       " 'asphaltic': 1054,\n",
       " 'pavement': 11656,\n",
       " 'weary': 17955,\n",
       " 'struck': 15621,\n",
       " 'foot': 6554,\n",
       " ...}"
      ]
     },
     "execution_count": 63,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "wcv.vocabulary_"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 64,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "18499"
      ]
     },
     "execution_count": 64,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "len(wcv.vocabulary_)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Note that there are many words here that probably aren't very useful. For example, the number of times that \"the\" appears in a sentence is probably not useful for classification. Useless words like these are called \"stop words\", and we can avoid counting them by setting `stop_words = \"english\"`, as shown below: "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 65,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'ishmael': 8777,\n",
       " 'years': 18149,\n",
       " 'ago': 492,\n",
       " 'mind': 10200,\n",
       " 'long': 9584,\n",
       " 'precisely': 12165,\n",
       " 'having': 7509,\n",
       " 'little': 9505,\n",
       " 'money': 10339,\n",
       " 'purse': 12585,\n",
       " 'particular': 11382,\n",
       " 'shore': 14278,\n",
       " 'thought': 16129,\n",
       " 'sail': 13675,\n",
       " 'watery': 17649,\n",
       " 'world': 18027,\n",
       " 'way': 17663,\n",
       " 'driving': 5043,\n",
       " 'spleen': 14984,\n",
       " 'regulating': 13010,\n",
       " 'circulation': 2832,\n",
       " 'growing': 7246,\n",
       " 'grim': 7199,\n",
       " 'mouth': 10451,\n",
       " 'damp': 4062,\n",
       " 'drizzly': 5044,\n",
       " 'november': 10814,\n",
       " 'soul': 14825,\n",
       " 'involuntarily': 8730,\n",
       " 'pausing': 11464,\n",
       " 'coffin': 3060,\n",
       " 'warehouses': 17595,\n",
       " 'bringing': 2096,\n",
       " 'rear': 12843,\n",
       " 'funeral': 6720,\n",
       " 'meet': 10054,\n",
       " 'especially': 5609,\n",
       " 'hypos': 8001,\n",
       " 'upper': 17174,\n",
       " 'hand': 7375,\n",
       " 'requires': 13207,\n",
       " 'strong': 15397,\n",
       " 'moral': 10384,\n",
       " 'principle': 12297,\n",
       " 'prevent': 12268,\n",
       " 'deliberately': 4268,\n",
       " 'stepping': 15222,\n",
       " 'street': 15356,\n",
       " 'methodically': 10136,\n",
       " 'knocking': 9088,\n",
       " 'people': 11564,\n",
       " 'hats': 7495,\n",
       " 'account': 256,\n",
       " 'high': 7685,\n",
       " 'time': 16241,\n",
       " 'sea': 13936,\n",
       " 'soon': 14800,\n",
       " 'substitute': 15490,\n",
       " 'pistol': 11806,\n",
       " 'ball': 1286,\n",
       " 'philosophical': 11700,\n",
       " 'flourish': 6383,\n",
       " 'cato': 2528,\n",
       " 'throws': 16172,\n",
       " 'sword': 15793,\n",
       " 'quietly': 12676,\n",
       " 'ship': 14239,\n",
       " 'surprising': 15683,\n",
       " 'knew': 9071,\n",
       " 'men': 10077,\n",
       " 'degree': 4256,\n",
       " 'cherish': 2721,\n",
       " 'nearly': 10636,\n",
       " 'feelings': 6119,\n",
       " 'ocean': 10934,\n",
       " 'insular': 8559,\n",
       " 'city': 2862,\n",
       " 'manhattoes': 9834,\n",
       " 'belted': 1563,\n",
       " 'round': 13553,\n",
       " 'wharves': 17766,\n",
       " 'indian': 8313,\n",
       " 'isles': 8783,\n",
       " 'coral': 3643,\n",
       " 'reefs': 12951,\n",
       " 'commerce': 3173,\n",
       " 'surrounds': 15692,\n",
       " 'surf': 15664,\n",
       " 'right': 13424,\n",
       " 'left': 9322,\n",
       " 'streets': 15357,\n",
       " 'waterward': 17648,\n",
       " 'extreme': 5905,\n",
       " 'downtown': 4955,\n",
       " 'battery': 1409,\n",
       " 'noble': 10737,\n",
       " 'mole': 10324,\n",
       " 'washed': 17621,\n",
       " 'waves': 17655,\n",
       " 'cooled': 3624,\n",
       " 'breezes': 2043,\n",
       " 'hours': 7875,\n",
       " 'previous': 12271,\n",
       " 'sight': 14371,\n",
       " 'land': 9169,\n",
       " 'look': 9594,\n",
       " 'crowds': 3906,\n",
       " 'water': 17642,\n",
       " 'gazers': 6847,\n",
       " 'circumambulate': 2834,\n",
       " 'dreamy': 5011,\n",
       " 'sabbath': 13644,\n",
       " 'afternoon': 468,\n",
       " 'corlears': 3659,\n",
       " 'hook': 7813,\n",
       " 'coenties': 3053,\n",
       " 'slip': 14573,\n",
       " 'whitehall': 17824,\n",
       " 'northward': 10775,\n",
       " 'posted': 12077,\n",
       " 'like': 9431,\n",
       " 'silent': 14392,\n",
       " 'sentinels': 14057,\n",
       " 'town': 16404,\n",
       " 'stand': 15126,\n",
       " 'thousands': 16136,\n",
       " 'mortal': 10401,\n",
       " 'fixed': 6281,\n",
       " 'reveries': 13362,\n",
       " 'leaning': 9290,\n",
       " 'spiles': 14949,\n",
       " 'seated': 13956,\n",
       " 'pier': 11745,\n",
       " 'heads': 7534,\n",
       " 'looking': 9600,\n",
       " 'bulwarks': 2204,\n",
       " 'ships': 14245,\n",
       " 'china': 2755,\n",
       " 'aloft': 605,\n",
       " 'rigging': 13423,\n",
       " 'striving': 15391,\n",
       " 'better': 1633,\n",
       " 'seaward': 13959,\n",
       " 'peep': 11518,\n",
       " 'landsmen': 9179,\n",
       " 'week': 17711,\n",
       " 'days': 4125,\n",
       " 'pent': 11563,\n",
       " 'lath': 9233,\n",
       " 'plaster': 11869,\n",
       " 'tied': 16216,\n",
       " 'counters': 3728,\n",
       " 'nailed': 10567,\n",
       " 'benches': 1566,\n",
       " 'clinched': 2961,\n",
       " 'desks': 4434,\n",
       " 'green': 7168,\n",
       " 'fields': 6193,\n",
       " 'gone': 7054,\n",
       " 'come': 3137,\n",
       " 'pacing': 11235,\n",
       " 'straight': 15321,\n",
       " 'seemingly': 13996,\n",
       " 'bound': 1937,\n",
       " 'dive': 4837,\n",
       " 'strange': 15334,\n",
       " 'content': 3523,\n",
       " 'extremest': 5908,\n",
       " 'limit': 9452,\n",
       " 'loitering': 9571,\n",
       " 'shady': 14135,\n",
       " 'lee': 9316,\n",
       " 'yonder': 18171,\n",
       " 'suffice': 15540,\n",
       " 'just': 8982,\n",
       " 'nigh': 10716,\n",
       " 'possibly': 12074,\n",
       " 'falling': 5975,\n",
       " 'miles': 10179,\n",
       " 'leagues': 9283,\n",
       " 'inlanders': 8472,\n",
       " 'lanes': 9181,\n",
       " 'alleys': 580,\n",
       " 'avenues': 1181,\n",
       " 'north': 10772,\n",
       " 'east': 5176,\n",
       " 'south': 14839,\n",
       " 'west': 17739,\n",
       " 'unite': 16970,\n",
       " 'tell': 15970,\n",
       " 'does': 4882,\n",
       " 'magnetic': 9749,\n",
       " 'virtue': 17431,\n",
       " 'needles': 10657,\n",
       " 'compasses': 3226,\n",
       " 'attract': 1135,\n",
       " 'thither': 16119,\n",
       " 'say': 13792,\n",
       " 'country': 3736,\n",
       " 'lakes': 9152,\n",
       " 'path': 11437,\n",
       " 'carries': 2469,\n",
       " 'dale': 4048,\n",
       " 'leaves': 9306,\n",
       " 'pool': 12012,\n",
       " 'stream': 15352,\n",
       " 'magic': 9739,\n",
       " 'let': 9362,\n",
       " 'absent': 205,\n",
       " 'minded': 10201,\n",
       " 'plunged': 11939,\n",
       " 'deepest': 4220,\n",
       " 'man': 9813,\n",
       " 'legs': 9337,\n",
       " 'set': 14093,\n",
       " 'feet': 6122,\n",
       " 'going': 7047,\n",
       " 'infallibly': 8390,\n",
       " 'lead': 9272,\n",
       " 'region': 13001,\n",
       " 'athirst': 1090,\n",
       " 'great': 7157,\n",
       " 'american': 647,\n",
       " 'desert': 4413,\n",
       " 'try': 16608,\n",
       " 'experiment': 5830,\n",
       " 'caravan': 2434,\n",
       " 'happen': 7411,\n",
       " 'supplied': 15642,\n",
       " 'metaphysical': 10129,\n",
       " 'professor': 12365,\n",
       " 'yes': 18159,\n",
       " 'knows': 9102,\n",
       " 'meditation': 10045,\n",
       " 'wedded': 17702,\n",
       " 'artist': 985,\n",
       " 'desires': 4428,\n",
       " 'paint': 11265,\n",
       " 'dreamiest': 5006,\n",
       " 'shadiest': 14128,\n",
       " 'quietest': 12675,\n",
       " 'enchanting': 5394,\n",
       " 'bit': 1690,\n",
       " 'romantic': 13521,\n",
       " 'landscape': 9177,\n",
       " 'valley': 17245,\n",
       " 'saco': 13651,\n",
       " 'chief': 2738,\n",
       " 'element': 5287,\n",
       " 'employs': 5377,\n",
       " 'trees': 16514,\n",
       " 'hollow': 7778,\n",
       " 'trunk': 16599,\n",
       " 'hermit': 7655,\n",
       " 'crucifix': 3914,\n",
       " 'sleeps': 14542,\n",
       " 'meadow': 10001,\n",
       " 'sleep': 14534,\n",
       " 'cattle': 2532,\n",
       " 'cottage': 3703,\n",
       " 'goes': 7043,\n",
       " 'sleepy': 14543,\n",
       " 'smoke': 14651,\n",
       " 'deep': 4216,\n",
       " 'distant': 4798,\n",
       " 'woodlands': 18006,\n",
       " 'winds': 17904,\n",
       " 'mazy': 10000,\n",
       " 'reaching': 12815,\n",
       " 'overlapping': 11182,\n",
       " 'spurs': 15058,\n",
       " 'mountains': 10440,\n",
       " 'bathed': 1400,\n",
       " 'hill': 7696,\n",
       " 'blue': 1807,\n",
       " 'picture': 11735,\n",
       " 'lies': 9406,\n",
       " 'tranced': 16447,\n",
       " 'pine': 11782,\n",
       " 'tree': 16513,\n",
       " 'shakes': 14144,\n",
       " 'sighs': 14370,\n",
       " 'shepherd': 14216,\n",
       " 'head': 7523,\n",
       " 'vain': 17238,\n",
       " 'unless': 16980,\n",
       " 'eye': 5916,\n",
       " 'visit': 17442,\n",
       " 'prairies': 12135,\n",
       " 'june': 8970,\n",
       " 'scores': 13865,\n",
       " 'wade': 17505,\n",
       " 'knee': 9066,\n",
       " 'tiger': 16221,\n",
       " 'lilies': 9442,\n",
       " 'charm': 2665,\n",
       " 'wanting': 17580,\n",
       " 'drop': 5050,\n",
       " 'niagara': 10705,\n",
       " 'cataract': 2515,\n",
       " 'sand': 13720,\n",
       " 'travel': 16487,\n",
       " 'thousand': 16135,\n",
       " 'did': 4539,\n",
       " 'poor': 12014,\n",
       " 'poet': 11951,\n",
       " 'tennessee': 16006,\n",
       " 'suddenly': 15529,\n",
       " 'receiving': 12871,\n",
       " 'handfuls': 7383,\n",
       " 'silver': 14399,\n",
       " 'deliberate': 4266,\n",
       " 'buy': 2285,\n",
       " 'coat': 3028,\n",
       " 'sadly': 13662,\n",
       " 'needed': 10653,\n",
       " 'invest': 8704,\n",
       " 'pedestrian': 11509,\n",
       " 'trip': 16555,\n",
       " 'rockaway': 13497,\n",
       " 'beach': 1421,\n",
       " 'robust': 13494,\n",
       " 'healthy': 7542,\n",
       " 'boy': 1971,\n",
       " 'crazy': 3816,\n",
       " 'voyage': 17490,\n",
       " 'passenger': 11403,\n",
       " 'feel': 6116,\n",
       " 'mystical': 10560,\n",
       " 'vibration': 17367,\n",
       " 'told': 16308,\n",
       " 'old': 10985,\n",
       " 'persians': 11636,\n",
       " 'hold': 7762,\n",
       " 'holy': 7783,\n",
       " 'greeks': 7167,\n",
       " 'separate': 14059,\n",
       " 'deity': 4259,\n",
       " 'brother': 2135,\n",
       " 'jove': 8931,\n",
       " 'surely': 15662,\n",
       " 'meaning': 10011,\n",
       " 'deeper': 4219,\n",
       " 'story': 15307,\n",
       " 'narcissus': 10587,\n",
       " 'grasp': 7123,\n",
       " 'tormenting': 16356,\n",
       " 'mild': 10173,\n",
       " 'image': 8074,\n",
       " 'saw': 13784,\n",
       " 'fountain': 6586,\n",
       " 'drowned': 5060,\n",
       " 'rivers': 13472,\n",
       " 'oceans': 10936,\n",
       " 'ungraspable': 16932,\n",
       " 'phantom': 11683,\n",
       " 'life': 9409,\n",
       " 'key': 9020,\n",
       " 'habit': 7310,\n",
       " 'begin': 1504,\n",
       " 'grow': 7244,\n",
       " 'hazy': 7522,\n",
       " 'eyes': 5924,\n",
       " 'conscious': 3432,\n",
       " 'lungs': 9689,\n",
       " 'mean': 10009,\n",
       " 'inferred': 8409,\n",
       " 'needs': 10662,\n",
       " 'rag': 12722,\n",
       " 'passengers': 11404,\n",
       " 'sick': 14358,\n",
       " 'quarrelsome': 12636,\n",
       " 'don': 4912,\n",
       " 'nights': 10722,\n",
       " 'enjoy': 5481,\n",
       " 'general': 6858,\n",
       " 'thing': 16101,\n",
       " 'salt': 13700,\n",
       " 'commodore': 3184,\n",
       " 'captain': 2423,\n",
       " 'cook': 3618,\n",
       " 'abandon': 152,\n",
       " 'glory': 7005,\n",
       " 'distinction': 4804,\n",
       " 'offices': 10964,\n",
       " 'abominate': 187,\n",
       " 'honourable': 7802,\n",
       " 'respectable': 13261,\n",
       " 'toils': 16305,\n",
       " 'trials': 16531,\n",
       " 'tribulations': 16538,\n",
       " 'kind': 9041,\n",
       " 'whatsoever': 17767,\n",
       " 'quite': 12685,\n",
       " 'care': 2442,\n",
       " 'taking': 15858,\n",
       " 'barques': 1364,\n",
       " 'brigs': 2082,\n",
       " 'schooners': 13849,\n",
       " 'confess': 3361,\n",
       " 'considerable': 3447,\n",
       " 'sort': 14819,\n",
       " 'officer': 10961,\n",
       " 'board': 1825,\n",
       " 'fancied': 5995,\n",
       " 'broiling': 2120,\n",
       " 'fowls': 6593,\n",
       " 'broiled': 2119,\n",
       " 'judiciously': 8953,\n",
       " 'buttered': 2273,\n",
       " 'judgmatically': 8948,\n",
       " 'salted': 13702,\n",
       " 'peppered': 11567,\n",
       " 'speak': 14882,\n",
       " 'respectfully': 13264,\n",
       " 'reverentially': 13360,\n",
       " 'fowl': 6592,\n",
       " 'idolatrous': 8037,\n",
       " 'dotings': 4931,\n",
       " 'egyptians': 5253,\n",
       " 'ibis': 8006,\n",
       " 'roasted': 13483,\n",
       " 'river': 13471,\n",
       " 'horse': 7850,\n",
       " 'mummies': 10499,\n",
       " 'creatures': 3830,\n",
       " 'huge': 7908,\n",
       " 'bake': 1271,\n",
       " 'houses': 7883,\n",
       " 'pyramids': 12609,\n",
       " 'simple': 14408,\n",
       " 'sailor': 13681,\n",
       " 'mast': 9944,\n",
       " 'plumb': 11929,\n",
       " 'forecastle': 6489,\n",
       " 'royal': 13574,\n",
       " 'true': 16591,\n",
       " 'order': 11068,\n",
       " 'make': 9785,\n",
       " 'jump': 8964,\n",
       " 'spar': 14867,\n",
       " 'grasshopper': 7129,\n",
       " 'unpleasant': 17028,\n",
       " 'touches': 16386,\n",
       " 'sense': 14042,\n",
       " 'honour': 7801,\n",
       " 'particularly': 11383,\n",
       " 'established': 5624,\n",
       " 'family': 5987,\n",
       " 'van': 17254,\n",
       " 'rensselaers': 13125,\n",
       " 'randolphs': 12762,\n",
       " 'hardicanutes': 7430,\n",
       " 'putting': 12603,\n",
       " 'tar': 15900,\n",
       " 'pot': 12087,\n",
       " 'lording': 9614,\n",
       " 'schoolmaster': 13845,\n",
       " 'making': 9791,\n",
       " 'tallest': 15872,\n",
       " 'boys': 1974,\n",
       " 'awe': 1202,\n",
       " 'transition': 16472,\n",
       " 'keen': 9001,\n",
       " 'assure': 1067,\n",
       " 'decoction': 4199,\n",
       " 'seneca': 14036,\n",
       " 'stoics': 15276,\n",
       " 'enable': 5385,\n",
       " 'grin': 7205,\n",
       " 'bear': 1437,\n",
       " 'wears': 17688,\n",
       " 'hunks': 7958,\n",
       " 'orders': 11071,\n",
       " 'broom': 2133,\n",
       " 'sweep': 15756,\n",
       " 'decks': 4188,\n",
       " 'indignity': 8331,\n",
       " 'weighed': 17719,\n",
       " 'scales': 13802,\n",
       " 'new': 10696,\n",
       " 'testament': 16044,\n",
       " 'think': 16103,\n",
       " 'archangel': 891,\n",
       " 'gabriel': 6751,\n",
       " 'thinks': 16107,\n",
       " 'promptly': 12409,\n",
       " 'obey': 10858,\n",
       " 'instance': 8539,\n",
       " 'ain': 523,\n",
       " 'slave': 14526,\n",
       " 'captains': 2424,\n",
       " 'thump': 16179,\n",
       " 'punch': 12548,\n",
       " 'satisfaction': 13755,\n",
       " 'knowing': 9098,\n",
       " 'everybody': 5670,\n",
       " 'served': 14087,\n",
       " 'physical': 11717,\n",
       " 'point': 11956,\n",
       " 'view': 17388,\n",
       " 'universal': 16972,\n",
       " 'passed': 11402,\n",
       " 'hands': 7392,\n",
       " 'rub': 13578,\n",
       " 'shoulder': 14290,\n",
       " 'blades': 1719,\n",
       " 'paying': 11473,\n",
       " 'trouble': 16579,\n",
       " 'pay': 11472,\n",
       " 'single': 14426,\n",
       " 'penny': 11561,\n",
       " 'heard': 7548,\n",
       " 'contrary': 3563,\n",
       " 'difference': 4549,\n",
       " 'paid': 11257,\n",
       " 'act': 304,\n",
       " 'uncomfortable': 16791,\n",
       " 'infliction': 8426,\n",
       " 'orchard': 11064,\n",
       " 'thieves': 16095,\n",
       " 'entailed': 5511,\n",
       " 'compare': 3221,\n",
       " 'urbane': 17188,\n",
       " 'activity': 311,\n",
       " 'receives': 12870,\n",
       " 'really': 12834,\n",
       " 'marvellous': 9927,\n",
       " 'considering': 3453,\n",
       " 'earnestly': 5159,\n",
       " 'believe': 1539,\n",
       " 'root': 13532,\n",
       " 'earthly': 5165,\n",
       " 'ills': 8064,\n",
       " 'monied': 10343,\n",
       " 'enter': 5515,\n",
       " 'heaven': 7578,\n",
       " 'ah': 507,\n",
       " 'cheerfully': 2707,\n",
       " 'consign': 3454,\n",
       " 'perdition': 11581,\n",
       " 'finally': 6224,\n",
       " 'wholesome': 17839,\n",
       " 'exercise': 5768,\n",
       " 'pure': 12569,\n",
       " 'air': 525,\n",
       " 'fore': 6486,\n",
       " 'castle': 2505,\n",
       " 'deck': 4187,\n",
       " 'far': 6007,\n",
       " 'prevalent': 12267,\n",
       " 'astern': 1073,\n",
       " 'violate': 17423,\n",
       " 'pythagorean': 12613,\n",
       " 'maxim': 9989,\n",
       " 'quarter': 12639,\n",
       " 'gets': 6904,\n",
       " 'atmosphere': 1095,\n",
       " 'second': 13966,\n",
       " 'sailors': 13682,\n",
       " 'breathes': 2029,\n",
       " 'commonalty': 3187,\n",
       " 'leaders': 9276,\n",
       " 'things': 16102,\n",
       " 'suspect': 15706,\n",
       " 'wherefore': 17781,\n",
       " 'repeatedly': 13140,\n",
       " 'smelt': 14634,\n",
       " 'merchant': 10096,\n",
       " 'whaling': 17763,\n",
       " 'invisible': 8718,\n",
       " 'police': 11973,\n",
       " 'fates': 6048,\n",
       " 'constant': 3474,\n",
       " 'surveillance': 15694,\n",
       " 'secretly': 13974,\n",
       " 'dogs': 4889,\n",
       " 'influences': 8429,\n",
       " 'unaccountable': 16732,\n",
       " 'answer': 749,\n",
       " 'doubtless': 4943,\n",
       " 'formed': 6546,\n",
       " 'grand': 7104,\n",
       " 'programme': 12384,\n",
       " 'providence': 12483,\n",
       " 'drawn': 4998,\n",
       " 'came': 2347,\n",
       " 'brief': 2069,\n",
       " 'interlude': 8619,\n",
       " 'solo': 14781,\n",
       " 'extensive': 5877,\n",
       " 'performances': 11592,\n",
       " 'run': 13621,\n",
       " 'contested': 3530,\n",
       " 'election': 5282,\n",
       " 'presidency': 12239,\n",
       " 'united': 16971,\n",
       " 'states': 15164,\n",
       " 'bloody': 1790,\n",
       " 'battle': 1410,\n",
       " 'affghanistan': 432,\n",
       " 'exactly': 5690,\n",
       " 'stage': 15094,\n",
       " 'managers': 9820,\n",
       " 'shabby': 14123,\n",
       " 'magnificent': 9754,\n",
       " 'parts': 11394,\n",
       " 'tragedies': 16433,\n",
       " 'short': 14283,\n",
       " 'easy': 5180,\n",
       " 'genteel': 6871,\n",
       " 'comedies': 3138,\n",
       " 'jolly': 8915,\n",
       " 'farces': 6008,\n",
       " 'recall': 12864,\n",
       " 'circumstances': 2847,\n",
       " 'springs': 15046,\n",
       " 'motives': 10424,\n",
       " 'cunningly': 3963,\n",
       " 'presented': 12225,\n",
       " 'various': 17267,\n",
       " 'disguises': 4706,\n",
       " 'induced': 8357,\n",
       " 'performing': 11594,\n",
       " 'cajoling': 2315,\n",
       " 'delusion': 4296,\n",
       " 'choice': 2769,\n",
       " 'resulting': 13303,\n",
       " 'unbiased': 16762,\n",
       " 'freewill': 6626,\n",
       " 'discriminating': 4680,\n",
       " 'judgment': 8949,\n",
       " 'overwhelming': 11213,\n",
       " 'idea': 8017,\n",
       " 'whale': 17748,\n",
       " 'portentous': 12040,\n",
       " 'mysterious': 10556,\n",
       " 'monster': 10356,\n",
       " 'roused': 13561,\n",
       " 'curiosity': 3981,\n",
       " 'wild': 17871,\n",
       " 'seas': 13950,\n",
       " 'rolled': 13512,\n",
       " 'island': 8779,\n",
       " 'bulk': 2190,\n",
       " 'undeliverable': 16825,\n",
       " 'nameless': 10574,\n",
       " 'perils': 11603,\n",
       " 'attending': 1120,\n",
       " 'marvels': 9929,\n",
       " 'patagonian': 11427,\n",
       " 'sights': 14374,\n",
       " 'sounds': 14832,\n",
       " 'helped': 7625,\n",
       " 'sway': 15744,\n",
       " 'wish': 17934,\n",
       " 'inducements': 8358,\n",
       " 'tormented': 16355,\n",
       " 'everlasting': 5667,\n",
       " 'itch': 8800,\n",
       " 'remote': 13102,\n",
       " 'love': 9638,\n",
       " 'forbidden': 6477,\n",
       " 'barbarous': 1336,\n",
       " 'coasts': 3027,\n",
       " 'ignoring': 8053,\n",
       " 'good': 7057,\n",
       " 'quick': 12661,\n",
       " 'perceive': 11570,\n",
       " 'horror': 7848,\n",
       " 'social': 14724,\n",
       " 'friendly': 6652,\n",
       " 'terms': 16021,\n",
       " 'inmates': 8475,\n",
       " 'place': 11833,\n",
       " 'lodges': 9556,\n",
       " 'reason': 12847,\n",
       " 'welcome': 17725,\n",
       " 'flood': 6371,\n",
       " 'gates': 6830,\n",
       " 'wonder': 17983,\n",
       " 'swung': 15799,\n",
       " 'open': 11021,\n",
       " 'conceits': 3297,\n",
       " 'swayed': 15745,\n",
       " 'purpose': 12579,\n",
       " 'floated': 6363,\n",
       " 'inmost': 8476,\n",
       " 'endless': 5429,\n",
       " 'processions': 12336,\n",
       " 'mid': 10150,\n",
       " 'hooded': 7809,\n",
       " 'snow': 14697,\n",
       " 'chapter': 2644,\n",
       " 'carpet': 2464,\n",
       " 'bag': 1259,\n",
       " 'stuffed': 15430,\n",
       " 'shirt': 14250,\n",
       " 'tucked': 16615,\n",
       " 'arm': 939,\n",
       " 'started': 15147,\n",
       " 'cape': 2403,\n",
       " 'horn': 7836,\n",
       " 'pacific': 11233,\n",
       " 'quitting': 12689,\n",
       " 'manhatto': 9833,\n",
       " 'duly': 5099,\n",
       " 'arrived': 963,\n",
       " 'bedford': 1473,\n",
       " 'saturday': 13760,\n",
       " 'night': 10717,\n",
       " 'december': 4173,\n",
       " 'disappointed': 4629,\n",
       " 'learning': 9299,\n",
       " 'packet': 11239,\n",
       " 'nantucket': 10577,\n",
       " 'sailed': 13676,\n",
       " 'offer': 10956,\n",
       " 'till': 16234,\n",
       " 'following': 6449,\n",
       " 'monday': 10338,\n",
       " 'young': 18175,\n",
       " 'candidates': 2369,\n",
       " 'pains': 11264,\n",
       " 'penalties': 11537,\n",
       " 'stop': 15292,\n",
       " 'embark': 5324,\n",
       " 'related': 13034,\n",
       " 'doing': 4890,\n",
       " 'craft': 3792,\n",
       " 'fine': 6229,\n",
       " 'boisterous': 1856,\n",
       " 'connected': 3418,\n",
       " 'famous': 5990,\n",
       " 'amazingly': 632,\n",
       " 'pleased': 11901,\n",
       " 'late': 9226,\n",
       " 'gradually': 7097,\n",
       " 'monopolising': 10350,\n",
       " 'business': 2257,\n",
       " 'matter': 9977,\n",
       " 'original': 11086,\n",
       " 'tyre': 16711,\n",
       " 'carthage': 2478,\n",
       " 'dead': 4130,\n",
       " 'stranded': 15332,\n",
       " 'aboriginal': 190,\n",
       " 'whalemen': 17755,\n",
       " 'red': 12933,\n",
       " 'sally': 13698,\n",
       " 'canoes': 2387,\n",
       " 'chase': 2676,\n",
       " 'leviathan': 9377,\n",
       " 'adventurous': 405,\n",
       " 'sloop': 14585,\n",
       " 'forth': 6557,\n",
       " 'partly': 11389,\n",
       " 'laden': 9139,\n",
       " 'imported': 8165,\n",
       " 'cobblestones': 3035,\n",
       " 'throw': 16169,\n",
       " 'whales': 17758,\n",
       " 'discover': 4667,\n",
       " 'risk': 13465,\n",
       " 'harpoon': 7452,\n",
       " 'bowsprit': 1966,\n",
       " 'day': 4122,\n",
       " 'ere': 5582,\n",
       " 'destined': 4458,\n",
       " 'port': 12036,\n",
       " 'concernment': 3314,\n",
       " 'eat': 5181,\n",
       " 'dubious': 5084,\n",
       " 'nay': 10630,\n",
       " 'dark': 4089,\n",
       " 'dismal': 4726,\n",
       " 'bitingly': 1695,\n",
       " 'cold': 3081,\n",
       " 'cheerless': 2712,\n",
       " 'anxious': 783,\n",
       " 'grapnels': 7119,\n",
       " 'sounded': 14828,\n",
       " 'pocket': 11945,\n",
       " 'brought': 2139,\n",
       " 'pieces': 11742,\n",
       " 'said': 13674,\n",
       " 'stood': 15287,\n",
       " 'middle': 10152,\n",
       " 'dreary': 5013,\n",
       " 'shouldering': 14292,\n",
       " 'comparing': 3223,\n",
       " 'gloom': 6998,\n",
       " 'darkness': 4096,\n",
       " 'wisdom': 17928,\n",
       " 'conclude': 3322,\n",
       " 'lodge': 9553,\n",
       " 'dear': 4143,\n",
       " 'sure': 15661,\n",
       " 'inquire': 8492,\n",
       " 'price': 12275,\n",
       " 'halting': 7355,\n",
       " 'steps': 15223,\n",
       " 'paced': 11231,\n",
       " 'sign': 14375,\n",
       " 'crossed': 3893,\n",
       " 'harpoons': 7458,\n",
       " 'looked': 9595,\n",
       " 'expensive': 5825,\n",
       " 'bright': 2075,\n",
       " 'windows': 17901,\n",
       " 'fish': 6257,\n",
       " 'inn': 8477,\n",
       " 'fervent': 6160,\n",
       " 'rays': 12809,\n",
       " 'melted': 10066,\n",
       " 'packed': 11238,\n",
       " 'ice': 8007,\n",
       " 'house': 7876,\n",
       " 'congealed': 3397,\n",
       " 'frost': 6685,\n",
       " 'lay': 9260,\n",
       " 'inches': 8233,\n",
       " 'hard': 7425,\n",
       " 'asphaltic': 1023,\n",
       " 'pavement': 11467,\n",
       " 'weary': 17689,\n",
       " 'struck': 15403,\n",
       " 'foot': 6461,\n",
       " 'flinty': 6355,\n",
       " 'projections': 12393,\n",
       " 'remorseless': 13100,\n",
       " 'service': 14089,\n",
       " 'soles': 14765,\n",
       " 'boots': 1902,\n",
       " 'miserable': 10240,\n",
       " 'plight': 11916,\n",
       " 'moment': 10330,\n",
       " 'watch': 17633,\n",
       " 'broad': 2114,\n",
       " 'glare': 6961,\n",
       " 'hear': 7547,\n",
       " 'tinkling': 16260,\n",
       " 'glasses': 6966,\n",
       " 'away': 1201,\n",
       " 'door': 4921,\n",
       " 'patched': 11429,\n",
       " 'stopping': 15295,\n",
       " 'went': 17734,\n",
       " 'instinct': 8547,\n",
       " 'followed': 6447,\n",
       " 'took': 16335,\n",
       " 'cheapest': 2690,\n",
       " 'cheeriest': 2709,\n",
       " 'inns': 8485,\n",
       " 'blocks': 1780,\n",
       " 'blackness': 1711,\n",
       " 'candle': 2371,\n",
       " 'moving': 10462,\n",
       " 'tomb': 16317,\n",
       " 'hour': 7873,\n",
       " 'proved': 12477,\n",
       " 'deserted': 4414,\n",
       " 'presently': 12229,\n",
       " 'smoky': 14656,\n",
       " 'light': 9419,\n",
       " 'proceeding': 12331,\n",
       " 'low': 9646,\n",
       " 'wide': 17852,\n",
       " 'building': 2183,\n",
       " 'invitingly': 8724,\n",
       " 'careless': 2449,\n",
       " 'meant': 10017,\n",
       " 'uses': 17202,\n",
       " 'public': 12515,\n",
       " 'entering': 5517,\n",
       " 'stumble': 15434,\n",
       " 'ash': 1003,\n",
       " 'box': 1967,\n",
       " 'porch': 12029,\n",
       " 'ha': 7305,\n",
       " 'flying': 6414,\n",
       " 'particles': 11381,\n",
       " 'choked': 2771,\n",
       " 'ashes': 1006,\n",
       " 'destroyed': 4462,\n",
       " 'gomorrah': 7053,\n",
       " 'trap': 16482,\n",
       " 'picked': 11728,\n",
       " 'hearing': 7550,\n",
       " 'loud': 9628,\n",
       " 'voice': 17467,\n",
       " 'pushed': 12598,\n",
       " 'opened': 11022,\n",
       " 'interior': 8614,\n",
       " 'black': 1704,\n",
       " 'parliament': 11358,\n",
       " 'sitting': 14453,\n",
       " 'tophet': 16343,\n",
       " 'faces': 5938,\n",
       " 'turned': 16656,\n",
       " 'rows': 13573,\n",
       " 'peer': 11521,\n",
       " 'angel': 706,\n",
       " 'doom': 4919,\n",
       " 'beating': 1454,\n",
       " 'book': 1885,\n",
       " 'pulpit': 12535,\n",
       " 'negro': 10668,\n",
       " 'church': 2807,\n",
       " 'preacher': 12148,\n",
       " 'text': 16057,\n",
       " 'weeping': 17716,\n",
       " 'wailing': 17521,\n",
       " 'teeth': 15966,\n",
       " 'gnashing': 7017,\n",
       " 'muttered': 10546,\n",
       " 'backing': 1240,\n",
       " 'wretched': 18080,\n",
       " 'entertainment': 5526,\n",
       " 'dim': 4583,\n",
       " 'docks': 4871,\n",
       " 'forlorn': 6536,\n",
       " 'creaking': 3819,\n",
       " 'swinging': 15786,\n",
       " 'white': 17823,\n",
       " 'painting': 11269,\n",
       " 'faintly': 5962,\n",
       " 'representing': 13176,\n",
       " 'tall': 15870,\n",
       " 'jet': 8864,\n",
       " 'misty': 10279,\n",
       " 'spray': 15040,\n",
       " 'words': 18017,\n",
       " 'underneath': 16834,\n",
       " 'spouter': 15026,\n",
       " 'peter': 11674,\n",
       " 'ominous': 10995,\n",
       " 'connexion': 3422,\n",
       " 'common': 3186,\n",
       " 'suppose': 15648,\n",
       " 'emigrant': 5354,\n",
       " 'quiet': 12673,\n",
       " 'dilapidated': 4574,\n",
       " 'wooden': 18004,\n",
       " 'carted': 2476,\n",
       " 'ruins': 13601,\n",
       " 'burnt': 2245,\n",
       " 'district': 4820,\n",
       " 'poverty': 12117,\n",
       " 'stricken': 15368,\n",
       " 'creak': 3818,\n",
       " 'spot': 15019,\n",
       " 'cheap': 2689,\n",
       " 'lodgings': 9558,\n",
       " 'best': 1610,\n",
       " 'pea': 11475,\n",
       " 'coffee': 3057,\n",
       " 'queer': 12649,\n",
       " 'gable': 6749,\n",
       " 'ended': 5425,\n",
       " 'palsied': 11294,\n",
       " 'sharp': 14172,\n",
       " 'bleak': 1749,\n",
       " 'corner': 3662,\n",
       " 'tempestuous': 15983,\n",
       " 'wind': 17894,\n",
       " 'euroclydon': 5647,\n",
       " 'kept': 9016,\n",
       " 'worse': 18036,\n",
       " 'howling': 7896,\n",
       " 'paul': 11455,\n",
       " 'tossed': 16374,\n",
       " 'mighty': 10167,\n",
       " 'pleasant': 11897,\n",
       " 'zephyr': 18189,\n",
       " 'doors': 4922,\n",
       " 'hob': 7748,\n",
       " 'toasting': 16289,\n",
       " 'bed': 1464,\n",
       " 'judging': 8947,\n",
       " 'called': 2332,\n",
       " 'says': 13795,\n",
       " 'writer': 18091,\n",
       " 'works': 18026,\n",
       " 'possess': 12064,\n",
       " 'copy': 3641,\n",
       " 'extant': 5872,\n",
       " 'maketh': 9790,\n",
       " 'thou': 16128,\n",
       " 'lookest': 9599,\n",
       " 'glass': 6965,\n",
       " 'window': 17900,\n",
       " 'outside': 11149,\n",
       " 'observest': 10896,\n",
       " 'sashless': 13745,\n",
       " 'sides': 14365,\n",
       " 'wight': 17865,\n",
       " 'death': 4146,\n",
       " 'glazier': 6970,\n",
       " 'passage': 11399,\n",
       " ...}"
      ]
     },
     "execution_count": 65,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "wcv = CountVectorizer(stop_words=\"english\")\n",
    "wcv.fit(both_books_train)\n",
    "wcv.vocabulary_"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "From below, we can see that there 18,199 unique words that occur in our books. Thus, every line of each book is turned into a vector with 18,199 features (wow!)."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 67,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "18199"
      ]
     },
     "execution_count": 67,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "len(wcv.vocabulary_)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Now that we have a vectorizer, we can use it to transform each line of our books into 18,199 features:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 68,
   "metadata": {},
   "outputs": [],
   "source": [
    "phi_both_books_train = wcv.transform(both_books_train)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "For example, we can see that line 70 in English is \"Whaling voyage by one ishmael\"."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 69,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'\\n\"WHALING VOYAGE BY ONE ISHMAEL'"
      ]
     },
     "execution_count": 69,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "both_books_train[70]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Let's try to look at the features that represent this sentence:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 70,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<1x18199 sparse matrix of type '<class 'numpy.int64'>'\n",
       "\twith 3 stored elements in Compressed Sparse Row format>"
      ]
     },
     "execution_count": 70,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "phi_both_books_train[70]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Because almost all of the entries are zero in any given $\\phi$, you'll see they are stored ina  special format called a \"sparse matrix.\" We note that it says there are \"3 stored elements\". What it means by this is that only 3 of the features are non-zero.\n",
    "\n",
    "We won't talk about the details of sparse matrices in our class, but the basic idea is that rather than many thousands of zeros and only 3 ones, the data is stored in a special format. To see which 3 entries are not zero, we can use the `nonzero` function:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 71,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(array([0, 0, 0]), array([ 8777, 17490, 17763]))"
      ]
     },
     "execution_count": 71,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "phi_both_books_train[70].nonzero()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "This says that this sentence contains 3 non-stop words, namely words 8777, 17490, and 17763. To see which words, these are, we can use our vocabulary:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 84,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "ishmael: 8777\n",
      "voyage: 17490\n",
      "whaling: 17763\n",
      "10: 9\n",
      "000: 0\n",
      "101: 11\n",
      "0037m: 1\n",
      "0082m: 3\n",
      "0189m: 5\n",
      "0242m: 7\n"
     ]
    }
   ],
   "source": [
    "for word, number in wcv.vocabulary_.items():\n",
    "    if number in {0, 1, 3, 5, 7, 9, 11, 8777, 17490, 17763}:\n",
    "        print(f\"{word}: {number}\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "From this, we see ishmael is \"8777\", whaling is word 17763, and voyage is word 17490. Apparently, this word count vectorizer considers \"by\" and \"one\" to be stop words."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "When we represent text as word counts, this is known as a **bag of words** model."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Luckily, our logistic regression implementation (and all other sklearn classifiers) is able to handle a bag of words represented by sparse matrices. That is, we can train our LogisticRegression model just like normal."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 85,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(1, 26)"
      ]
     },
     "execution_count": 85,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "lm.coef_.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 86,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "LogisticRegression(C=1.0, class_weight=None, dual=False, fit_intercept=True,\n",
       "                   intercept_scaling=1, l1_ratio=None, max_iter=100,\n",
       "                   multi_class='auto', n_jobs=None, penalty='l2',\n",
       "                   random_state=None, solver='lbfgs', tol=0.0001, verbose=0,\n",
       "                   warm_start=False)"
      ]
     },
     "execution_count": 86,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "lm = LogisticRegression()\n",
    "lm.fit(phi_both_books_train, y_train)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "To use this classifer on new inputs, we need to first transform the inputs using the word count vectorizer. For example, consider the three sentences below:\n",
    "1. \"The whale on the moon had his Weibo account suspended\",\n",
    "2. \"The widow and the orphan slept at the Blacksmith's shop\",\n",
    "3. \"To use this classifer, we need to first transform our sentences using the word count vectorizer\"\n",
    "\n",
    "Our model will tell us the likelihood that each of these three sentences would appear in Great Expectations vs. Moby Dick.\n",
    "\n",
    "According to the code below, these sentence are:\n",
    "1. 98% likely to occur in Moby Dick (rather than Great Expectations)\n",
    "2. 84% likely to occur in Great Expectations (rather than Moby Dick)\n",
    "3. 68% likely to occur in Moby Dick (rather than Great Expectations)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 87,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[0.98126485, 0.01873515],\n",
       "       [0.16333259, 0.83666741],\n",
       "       [0.67762886, 0.32237114]])"
      ]
     },
     "execution_count": 87,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "phi_example = wcv.transform([\n",
    "    \"The whale on the moon had his Weibo account suspended\",\n",
    "    \"The widow and the orphan slept at the Blacksmith's shop\",\n",
    "    \"To use this classifer, we need to first transform our sentences using the word count vectorizer\",\n",
    "])\n",
    "lm.predict_proba(phi_example)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We can compute our overall training and test accuracy:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 88,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.9755454545454545"
      ]
     },
     "execution_count": 88,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "lm_predictions_train = lm.predict(phi_both_books_train)\n",
    "accuracy_score(y_train, lm_predictions_train)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 89,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.8661581137309292"
      ]
     },
     "execution_count": 89,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "phi_both_books_test = wcv.transform(both_books_test)\n",
    "lm_predictions_test = lm.predict(phi_both_books_test)\n",
    "accuracy_score(y_test, lm_predictions_test)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We see that we get 95% and 86% accuracy on the training and test set respectively, which is much better than the 69% we got by doing letter counts."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "To see which features are most important, we can look at the coefficients of our logistic regression model:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 90,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[-8.36002633e-01,  2.42777617e-02,  8.24104925e-04, ...,\n",
       "        -2.57382651e-02, -5.97829620e-02, -3.05046118e-02]])"
      ]
     },
     "execution_count": 90,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "lm.coef_"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 92,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "18199"
      ]
     },
     "execution_count": 92,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "len(lm.coef_[0])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Using argsort, we can get the 5 most important features."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 94,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([  509,  2423, 12542, 18145, 18012,  8819, 15413, 17748,  8892,\n",
       "       12648], dtype=int64)"
      ]
     },
     "execution_count": 94,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.argsort(abs(lm.coef_))[0][-10:]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "These coefficients have the values shown below:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 96,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([-2.55989429, -2.64155873,  2.66757231, -2.75761556,  2.98754163,\n",
       "        3.11750807, -3.15503924, -3.48784038,  3.64688072, -3.82231036])"
      ]
     },
     "execution_count": 96,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "lm.coef_[0, [509, 2423, 12542, 18145, 18012, 8819, 15413, 17748, 8892, 12648]]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 70,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([ 3.12, -3.16, -3.49,  3.65, -3.82])"
      ]
     },
     "execution_count": 70,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.array([3.12, -3.16, -3.49, 3.65, -3.82])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "And correspond to the words shown below:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 97,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "ahab: 509\n",
      "captain: 2423\n",
      "pumblechook: 12542\n",
      "ye: 18145\n",
      "wopsle: 18012\n",
      "jaggers: 8819\n",
      "stubb: 15413\n",
      "whale: 17748\n",
      "joe: 8892\n",
      "queequeg: 12648\n"
     ]
    }
   ],
   "source": [
    "for number in [509, 2423, 12542, 18145, 18012, 8819, 15413, 17748, 8892, 12648]:\n",
    "    for word, n2 in wcv.vocabulary_.items():\n",
    "        if number == n2:\n",
    "            print(f\"{word}: {number}\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 98,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([-0.14744307])"
      ]
     },
     "execution_count": 98,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "lm.intercept_"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 99,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[0.62662743, 0.37337257]])"
      ]
     },
     "execution_count": 99,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "lm.predict_proba(wcv.transform([\"jaggers is a whale\"]))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Decision Tree Example"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We can of course build a decision tree as well using our word counts."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 100,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "DecisionTreeClassifier(ccp_alpha=0.0, class_weight=None, criterion='gini',\n",
       "                       max_depth=None, max_features=None, max_leaf_nodes=None,\n",
       "                       min_impurity_decrease=0.02, min_impurity_split=None,\n",
       "                       min_samples_leaf=1, min_samples_split=2,\n",
       "                       min_weight_fraction_leaf=0.0, presort='deprecated',\n",
       "                       random_state=None, splitter='best')"
      ]
     },
     "execution_count": 100,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from sklearn.tree import DecisionTreeClassifier\n",
    "dt = DecisionTreeClassifier(min_impurity_decrease=0.02)\n",
    "dt.fit(phi_both_books_train, y_train)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 102,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'ishmael': 8777,\n",
       " 'years': 18149,\n",
       " 'ago': 492,\n",
       " 'mind': 10200,\n",
       " 'long': 9584,\n",
       " 'precisely': 12165,\n",
       " 'having': 7509,\n",
       " 'little': 9505,\n",
       " 'money': 10339,\n",
       " 'purse': 12585,\n",
       " 'particular': 11382,\n",
       " 'shore': 14278,\n",
       " 'thought': 16129,\n",
       " 'sail': 13675,\n",
       " 'watery': 17649,\n",
       " 'world': 18027,\n",
       " 'way': 17663,\n",
       " 'driving': 5043,\n",
       " 'spleen': 14984,\n",
       " 'regulating': 13010,\n",
       " 'circulation': 2832,\n",
       " 'growing': 7246,\n",
       " 'grim': 7199,\n",
       " 'mouth': 10451,\n",
       " 'damp': 4062,\n",
       " 'drizzly': 5044,\n",
       " 'november': 10814,\n",
       " 'soul': 14825,\n",
       " 'involuntarily': 8730,\n",
       " 'pausing': 11464,\n",
       " 'coffin': 3060,\n",
       " 'warehouses': 17595,\n",
       " 'bringing': 2096,\n",
       " 'rear': 12843,\n",
       " 'funeral': 6720,\n",
       " 'meet': 10054,\n",
       " 'especially': 5609,\n",
       " 'hypos': 8001,\n",
       " 'upper': 17174,\n",
       " 'hand': 7375,\n",
       " 'requires': 13207,\n",
       " 'strong': 15397,\n",
       " 'moral': 10384,\n",
       " 'principle': 12297,\n",
       " 'prevent': 12268,\n",
       " 'deliberately': 4268,\n",
       " 'stepping': 15222,\n",
       " 'street': 15356,\n",
       " 'methodically': 10136,\n",
       " 'knocking': 9088,\n",
       " 'people': 11564,\n",
       " 'hats': 7495,\n",
       " 'account': 256,\n",
       " 'high': 7685,\n",
       " 'time': 16241,\n",
       " 'sea': 13936,\n",
       " 'soon': 14800,\n",
       " 'substitute': 15490,\n",
       " 'pistol': 11806,\n",
       " 'ball': 1286,\n",
       " 'philosophical': 11700,\n",
       " 'flourish': 6383,\n",
       " 'cato': 2528,\n",
       " 'throws': 16172,\n",
       " 'sword': 15793,\n",
       " 'quietly': 12676,\n",
       " 'ship': 14239,\n",
       " 'surprising': 15683,\n",
       " 'knew': 9071,\n",
       " 'men': 10077,\n",
       " 'degree': 4256,\n",
       " 'cherish': 2721,\n",
       " 'nearly': 10636,\n",
       " 'feelings': 6119,\n",
       " 'ocean': 10934,\n",
       " 'insular': 8559,\n",
       " 'city': 2862,\n",
       " 'manhattoes': 9834,\n",
       " 'belted': 1563,\n",
       " 'round': 13553,\n",
       " 'wharves': 17766,\n",
       " 'indian': 8313,\n",
       " 'isles': 8783,\n",
       " 'coral': 3643,\n",
       " 'reefs': 12951,\n",
       " 'commerce': 3173,\n",
       " 'surrounds': 15692,\n",
       " 'surf': 15664,\n",
       " 'right': 13424,\n",
       " 'left': 9322,\n",
       " 'streets': 15357,\n",
       " 'waterward': 17648,\n",
       " 'extreme': 5905,\n",
       " 'downtown': 4955,\n",
       " 'battery': 1409,\n",
       " 'noble': 10737,\n",
       " 'mole': 10324,\n",
       " 'washed': 17621,\n",
       " 'waves': 17655,\n",
       " 'cooled': 3624,\n",
       " 'breezes': 2043,\n",
       " 'hours': 7875,\n",
       " 'previous': 12271,\n",
       " 'sight': 14371,\n",
       " 'land': 9169,\n",
       " 'look': 9594,\n",
       " 'crowds': 3906,\n",
       " 'water': 17642,\n",
       " 'gazers': 6847,\n",
       " 'circumambulate': 2834,\n",
       " 'dreamy': 5011,\n",
       " 'sabbath': 13644,\n",
       " 'afternoon': 468,\n",
       " 'corlears': 3659,\n",
       " 'hook': 7813,\n",
       " 'coenties': 3053,\n",
       " 'slip': 14573,\n",
       " 'whitehall': 17824,\n",
       " 'northward': 10775,\n",
       " 'posted': 12077,\n",
       " 'like': 9431,\n",
       " 'silent': 14392,\n",
       " 'sentinels': 14057,\n",
       " 'town': 16404,\n",
       " 'stand': 15126,\n",
       " 'thousands': 16136,\n",
       " 'mortal': 10401,\n",
       " 'fixed': 6281,\n",
       " 'reveries': 13362,\n",
       " 'leaning': 9290,\n",
       " 'spiles': 14949,\n",
       " 'seated': 13956,\n",
       " 'pier': 11745,\n",
       " 'heads': 7534,\n",
       " 'looking': 9600,\n",
       " 'bulwarks': 2204,\n",
       " 'ships': 14245,\n",
       " 'china': 2755,\n",
       " 'aloft': 605,\n",
       " 'rigging': 13423,\n",
       " 'striving': 15391,\n",
       " 'better': 1633,\n",
       " 'seaward': 13959,\n",
       " 'peep': 11518,\n",
       " 'landsmen': 9179,\n",
       " 'week': 17711,\n",
       " 'days': 4125,\n",
       " 'pent': 11563,\n",
       " 'lath': 9233,\n",
       " 'plaster': 11869,\n",
       " 'tied': 16216,\n",
       " 'counters': 3728,\n",
       " 'nailed': 10567,\n",
       " 'benches': 1566,\n",
       " 'clinched': 2961,\n",
       " 'desks': 4434,\n",
       " 'green': 7168,\n",
       " 'fields': 6193,\n",
       " 'gone': 7054,\n",
       " 'come': 3137,\n",
       " 'pacing': 11235,\n",
       " 'straight': 15321,\n",
       " 'seemingly': 13996,\n",
       " 'bound': 1937,\n",
       " 'dive': 4837,\n",
       " 'strange': 15334,\n",
       " 'content': 3523,\n",
       " 'extremest': 5908,\n",
       " 'limit': 9452,\n",
       " 'loitering': 9571,\n",
       " 'shady': 14135,\n",
       " 'lee': 9316,\n",
       " 'yonder': 18171,\n",
       " 'suffice': 15540,\n",
       " 'just': 8982,\n",
       " 'nigh': 10716,\n",
       " 'possibly': 12074,\n",
       " 'falling': 5975,\n",
       " 'miles': 10179,\n",
       " 'leagues': 9283,\n",
       " 'inlanders': 8472,\n",
       " 'lanes': 9181,\n",
       " 'alleys': 580,\n",
       " 'avenues': 1181,\n",
       " 'north': 10772,\n",
       " 'east': 5176,\n",
       " 'south': 14839,\n",
       " 'west': 17739,\n",
       " 'unite': 16970,\n",
       " 'tell': 15970,\n",
       " 'does': 4882,\n",
       " 'magnetic': 9749,\n",
       " 'virtue': 17431,\n",
       " 'needles': 10657,\n",
       " 'compasses': 3226,\n",
       " 'attract': 1135,\n",
       " 'thither': 16119,\n",
       " 'say': 13792,\n",
       " 'country': 3736,\n",
       " 'lakes': 9152,\n",
       " 'path': 11437,\n",
       " 'carries': 2469,\n",
       " 'dale': 4048,\n",
       " 'leaves': 9306,\n",
       " 'pool': 12012,\n",
       " 'stream': 15352,\n",
       " 'magic': 9739,\n",
       " 'let': 9362,\n",
       " 'absent': 205,\n",
       " 'minded': 10201,\n",
       " 'plunged': 11939,\n",
       " 'deepest': 4220,\n",
       " 'man': 9813,\n",
       " 'legs': 9337,\n",
       " 'set': 14093,\n",
       " 'feet': 6122,\n",
       " 'going': 7047,\n",
       " 'infallibly': 8390,\n",
       " 'lead': 9272,\n",
       " 'region': 13001,\n",
       " 'athirst': 1090,\n",
       " 'great': 7157,\n",
       " 'american': 647,\n",
       " 'desert': 4413,\n",
       " 'try': 16608,\n",
       " 'experiment': 5830,\n",
       " 'caravan': 2434,\n",
       " 'happen': 7411,\n",
       " 'supplied': 15642,\n",
       " 'metaphysical': 10129,\n",
       " 'professor': 12365,\n",
       " 'yes': 18159,\n",
       " 'knows': 9102,\n",
       " 'meditation': 10045,\n",
       " 'wedded': 17702,\n",
       " 'artist': 985,\n",
       " 'desires': 4428,\n",
       " 'paint': 11265,\n",
       " 'dreamiest': 5006,\n",
       " 'shadiest': 14128,\n",
       " 'quietest': 12675,\n",
       " 'enchanting': 5394,\n",
       " 'bit': 1690,\n",
       " 'romantic': 13521,\n",
       " 'landscape': 9177,\n",
       " 'valley': 17245,\n",
       " 'saco': 13651,\n",
       " 'chief': 2738,\n",
       " 'element': 5287,\n",
       " 'employs': 5377,\n",
       " 'trees': 16514,\n",
       " 'hollow': 7778,\n",
       " 'trunk': 16599,\n",
       " 'hermit': 7655,\n",
       " 'crucifix': 3914,\n",
       " 'sleeps': 14542,\n",
       " 'meadow': 10001,\n",
       " 'sleep': 14534,\n",
       " 'cattle': 2532,\n",
       " 'cottage': 3703,\n",
       " 'goes': 7043,\n",
       " 'sleepy': 14543,\n",
       " 'smoke': 14651,\n",
       " 'deep': 4216,\n",
       " 'distant': 4798,\n",
       " 'woodlands': 18006,\n",
       " 'winds': 17904,\n",
       " 'mazy': 10000,\n",
       " 'reaching': 12815,\n",
       " 'overlapping': 11182,\n",
       " 'spurs': 15058,\n",
       " 'mountains': 10440,\n",
       " 'bathed': 1400,\n",
       " 'hill': 7696,\n",
       " 'blue': 1807,\n",
       " 'picture': 11735,\n",
       " 'lies': 9406,\n",
       " 'tranced': 16447,\n",
       " 'pine': 11782,\n",
       " 'tree': 16513,\n",
       " 'shakes': 14144,\n",
       " 'sighs': 14370,\n",
       " 'shepherd': 14216,\n",
       " 'head': 7523,\n",
       " 'vain': 17238,\n",
       " 'unless': 16980,\n",
       " 'eye': 5916,\n",
       " 'visit': 17442,\n",
       " 'prairies': 12135,\n",
       " 'june': 8970,\n",
       " 'scores': 13865,\n",
       " 'wade': 17505,\n",
       " 'knee': 9066,\n",
       " 'tiger': 16221,\n",
       " 'lilies': 9442,\n",
       " 'charm': 2665,\n",
       " 'wanting': 17580,\n",
       " 'drop': 5050,\n",
       " 'niagara': 10705,\n",
       " 'cataract': 2515,\n",
       " 'sand': 13720,\n",
       " 'travel': 16487,\n",
       " 'thousand': 16135,\n",
       " 'did': 4539,\n",
       " 'poor': 12014,\n",
       " 'poet': 11951,\n",
       " 'tennessee': 16006,\n",
       " 'suddenly': 15529,\n",
       " 'receiving': 12871,\n",
       " 'handfuls': 7383,\n",
       " 'silver': 14399,\n",
       " 'deliberate': 4266,\n",
       " 'buy': 2285,\n",
       " 'coat': 3028,\n",
       " 'sadly': 13662,\n",
       " 'needed': 10653,\n",
       " 'invest': 8704,\n",
       " 'pedestrian': 11509,\n",
       " 'trip': 16555,\n",
       " 'rockaway': 13497,\n",
       " 'beach': 1421,\n",
       " 'robust': 13494,\n",
       " 'healthy': 7542,\n",
       " 'boy': 1971,\n",
       " 'crazy': 3816,\n",
       " 'voyage': 17490,\n",
       " 'passenger': 11403,\n",
       " 'feel': 6116,\n",
       " 'mystical': 10560,\n",
       " 'vibration': 17367,\n",
       " 'told': 16308,\n",
       " 'old': 10985,\n",
       " 'persians': 11636,\n",
       " 'hold': 7762,\n",
       " 'holy': 7783,\n",
       " 'greeks': 7167,\n",
       " 'separate': 14059,\n",
       " 'deity': 4259,\n",
       " 'brother': 2135,\n",
       " 'jove': 8931,\n",
       " 'surely': 15662,\n",
       " 'meaning': 10011,\n",
       " 'deeper': 4219,\n",
       " 'story': 15307,\n",
       " 'narcissus': 10587,\n",
       " 'grasp': 7123,\n",
       " 'tormenting': 16356,\n",
       " 'mild': 10173,\n",
       " 'image': 8074,\n",
       " 'saw': 13784,\n",
       " 'fountain': 6586,\n",
       " 'drowned': 5060,\n",
       " 'rivers': 13472,\n",
       " 'oceans': 10936,\n",
       " 'ungraspable': 16932,\n",
       " 'phantom': 11683,\n",
       " 'life': 9409,\n",
       " 'key': 9020,\n",
       " 'habit': 7310,\n",
       " 'begin': 1504,\n",
       " 'grow': 7244,\n",
       " 'hazy': 7522,\n",
       " 'eyes': 5924,\n",
       " 'conscious': 3432,\n",
       " 'lungs': 9689,\n",
       " 'mean': 10009,\n",
       " 'inferred': 8409,\n",
       " 'needs': 10662,\n",
       " 'rag': 12722,\n",
       " 'passengers': 11404,\n",
       " 'sick': 14358,\n",
       " 'quarrelsome': 12636,\n",
       " 'don': 4912,\n",
       " 'nights': 10722,\n",
       " 'enjoy': 5481,\n",
       " 'general': 6858,\n",
       " 'thing': 16101,\n",
       " 'salt': 13700,\n",
       " 'commodore': 3184,\n",
       " 'captain': 2423,\n",
       " 'cook': 3618,\n",
       " 'abandon': 152,\n",
       " 'glory': 7005,\n",
       " 'distinction': 4804,\n",
       " 'offices': 10964,\n",
       " 'abominate': 187,\n",
       " 'honourable': 7802,\n",
       " 'respectable': 13261,\n",
       " 'toils': 16305,\n",
       " 'trials': 16531,\n",
       " 'tribulations': 16538,\n",
       " 'kind': 9041,\n",
       " 'whatsoever': 17767,\n",
       " 'quite': 12685,\n",
       " 'care': 2442,\n",
       " 'taking': 15858,\n",
       " 'barques': 1364,\n",
       " 'brigs': 2082,\n",
       " 'schooners': 13849,\n",
       " 'confess': 3361,\n",
       " 'considerable': 3447,\n",
       " 'sort': 14819,\n",
       " 'officer': 10961,\n",
       " 'board': 1825,\n",
       " 'fancied': 5995,\n",
       " 'broiling': 2120,\n",
       " 'fowls': 6593,\n",
       " 'broiled': 2119,\n",
       " 'judiciously': 8953,\n",
       " 'buttered': 2273,\n",
       " 'judgmatically': 8948,\n",
       " 'salted': 13702,\n",
       " 'peppered': 11567,\n",
       " 'speak': 14882,\n",
       " 'respectfully': 13264,\n",
       " 'reverentially': 13360,\n",
       " 'fowl': 6592,\n",
       " 'idolatrous': 8037,\n",
       " 'dotings': 4931,\n",
       " 'egyptians': 5253,\n",
       " 'ibis': 8006,\n",
       " 'roasted': 13483,\n",
       " 'river': 13471,\n",
       " 'horse': 7850,\n",
       " 'mummies': 10499,\n",
       " 'creatures': 3830,\n",
       " 'huge': 7908,\n",
       " 'bake': 1271,\n",
       " 'houses': 7883,\n",
       " 'pyramids': 12609,\n",
       " 'simple': 14408,\n",
       " 'sailor': 13681,\n",
       " 'mast': 9944,\n",
       " 'plumb': 11929,\n",
       " 'forecastle': 6489,\n",
       " 'royal': 13574,\n",
       " 'true': 16591,\n",
       " 'order': 11068,\n",
       " 'make': 9785,\n",
       " 'jump': 8964,\n",
       " 'spar': 14867,\n",
       " 'grasshopper': 7129,\n",
       " 'unpleasant': 17028,\n",
       " 'touches': 16386,\n",
       " 'sense': 14042,\n",
       " 'honour': 7801,\n",
       " 'particularly': 11383,\n",
       " 'established': 5624,\n",
       " 'family': 5987,\n",
       " 'van': 17254,\n",
       " 'rensselaers': 13125,\n",
       " 'randolphs': 12762,\n",
       " 'hardicanutes': 7430,\n",
       " 'putting': 12603,\n",
       " 'tar': 15900,\n",
       " 'pot': 12087,\n",
       " 'lording': 9614,\n",
       " 'schoolmaster': 13845,\n",
       " 'making': 9791,\n",
       " 'tallest': 15872,\n",
       " 'boys': 1974,\n",
       " 'awe': 1202,\n",
       " 'transition': 16472,\n",
       " 'keen': 9001,\n",
       " 'assure': 1067,\n",
       " 'decoction': 4199,\n",
       " 'seneca': 14036,\n",
       " 'stoics': 15276,\n",
       " 'enable': 5385,\n",
       " 'grin': 7205,\n",
       " 'bear': 1437,\n",
       " 'wears': 17688,\n",
       " 'hunks': 7958,\n",
       " 'orders': 11071,\n",
       " 'broom': 2133,\n",
       " 'sweep': 15756,\n",
       " 'decks': 4188,\n",
       " 'indignity': 8331,\n",
       " 'weighed': 17719,\n",
       " 'scales': 13802,\n",
       " 'new': 10696,\n",
       " 'testament': 16044,\n",
       " 'think': 16103,\n",
       " 'archangel': 891,\n",
       " 'gabriel': 6751,\n",
       " 'thinks': 16107,\n",
       " 'promptly': 12409,\n",
       " 'obey': 10858,\n",
       " 'instance': 8539,\n",
       " 'ain': 523,\n",
       " 'slave': 14526,\n",
       " 'captains': 2424,\n",
       " 'thump': 16179,\n",
       " 'punch': 12548,\n",
       " 'satisfaction': 13755,\n",
       " 'knowing': 9098,\n",
       " 'everybody': 5670,\n",
       " 'served': 14087,\n",
       " 'physical': 11717,\n",
       " 'point': 11956,\n",
       " 'view': 17388,\n",
       " 'universal': 16972,\n",
       " 'passed': 11402,\n",
       " 'hands': 7392,\n",
       " 'rub': 13578,\n",
       " 'shoulder': 14290,\n",
       " 'blades': 1719,\n",
       " 'paying': 11473,\n",
       " 'trouble': 16579,\n",
       " 'pay': 11472,\n",
       " 'single': 14426,\n",
       " 'penny': 11561,\n",
       " 'heard': 7548,\n",
       " 'contrary': 3563,\n",
       " 'difference': 4549,\n",
       " 'paid': 11257,\n",
       " 'act': 304,\n",
       " 'uncomfortable': 16791,\n",
       " 'infliction': 8426,\n",
       " 'orchard': 11064,\n",
       " 'thieves': 16095,\n",
       " 'entailed': 5511,\n",
       " 'compare': 3221,\n",
       " 'urbane': 17188,\n",
       " 'activity': 311,\n",
       " 'receives': 12870,\n",
       " 'really': 12834,\n",
       " 'marvellous': 9927,\n",
       " 'considering': 3453,\n",
       " 'earnestly': 5159,\n",
       " 'believe': 1539,\n",
       " 'root': 13532,\n",
       " 'earthly': 5165,\n",
       " 'ills': 8064,\n",
       " 'monied': 10343,\n",
       " 'enter': 5515,\n",
       " 'heaven': 7578,\n",
       " 'ah': 507,\n",
       " 'cheerfully': 2707,\n",
       " 'consign': 3454,\n",
       " 'perdition': 11581,\n",
       " 'finally': 6224,\n",
       " 'wholesome': 17839,\n",
       " 'exercise': 5768,\n",
       " 'pure': 12569,\n",
       " 'air': 525,\n",
       " 'fore': 6486,\n",
       " 'castle': 2505,\n",
       " 'deck': 4187,\n",
       " 'far': 6007,\n",
       " 'prevalent': 12267,\n",
       " 'astern': 1073,\n",
       " 'violate': 17423,\n",
       " 'pythagorean': 12613,\n",
       " 'maxim': 9989,\n",
       " 'quarter': 12639,\n",
       " 'gets': 6904,\n",
       " 'atmosphere': 1095,\n",
       " 'second': 13966,\n",
       " 'sailors': 13682,\n",
       " 'breathes': 2029,\n",
       " 'commonalty': 3187,\n",
       " 'leaders': 9276,\n",
       " 'things': 16102,\n",
       " 'suspect': 15706,\n",
       " 'wherefore': 17781,\n",
       " 'repeatedly': 13140,\n",
       " 'smelt': 14634,\n",
       " 'merchant': 10096,\n",
       " 'whaling': 17763,\n",
       " 'invisible': 8718,\n",
       " 'police': 11973,\n",
       " 'fates': 6048,\n",
       " 'constant': 3474,\n",
       " 'surveillance': 15694,\n",
       " 'secretly': 13974,\n",
       " 'dogs': 4889,\n",
       " 'influences': 8429,\n",
       " 'unaccountable': 16732,\n",
       " 'answer': 749,\n",
       " 'doubtless': 4943,\n",
       " 'formed': 6546,\n",
       " 'grand': 7104,\n",
       " 'programme': 12384,\n",
       " 'providence': 12483,\n",
       " 'drawn': 4998,\n",
       " 'came': 2347,\n",
       " 'brief': 2069,\n",
       " 'interlude': 8619,\n",
       " 'solo': 14781,\n",
       " 'extensive': 5877,\n",
       " 'performances': 11592,\n",
       " 'run': 13621,\n",
       " 'contested': 3530,\n",
       " 'election': 5282,\n",
       " 'presidency': 12239,\n",
       " 'united': 16971,\n",
       " 'states': 15164,\n",
       " 'bloody': 1790,\n",
       " 'battle': 1410,\n",
       " 'affghanistan': 432,\n",
       " 'exactly': 5690,\n",
       " 'stage': 15094,\n",
       " 'managers': 9820,\n",
       " 'shabby': 14123,\n",
       " 'magnificent': 9754,\n",
       " 'parts': 11394,\n",
       " 'tragedies': 16433,\n",
       " 'short': 14283,\n",
       " 'easy': 5180,\n",
       " 'genteel': 6871,\n",
       " 'comedies': 3138,\n",
       " 'jolly': 8915,\n",
       " 'farces': 6008,\n",
       " 'recall': 12864,\n",
       " 'circumstances': 2847,\n",
       " 'springs': 15046,\n",
       " 'motives': 10424,\n",
       " 'cunningly': 3963,\n",
       " 'presented': 12225,\n",
       " 'various': 17267,\n",
       " 'disguises': 4706,\n",
       " 'induced': 8357,\n",
       " 'performing': 11594,\n",
       " 'cajoling': 2315,\n",
       " 'delusion': 4296,\n",
       " 'choice': 2769,\n",
       " 'resulting': 13303,\n",
       " 'unbiased': 16762,\n",
       " 'freewill': 6626,\n",
       " 'discriminating': 4680,\n",
       " 'judgment': 8949,\n",
       " 'overwhelming': 11213,\n",
       " 'idea': 8017,\n",
       " 'whale': 17748,\n",
       " 'portentous': 12040,\n",
       " 'mysterious': 10556,\n",
       " 'monster': 10356,\n",
       " 'roused': 13561,\n",
       " 'curiosity': 3981,\n",
       " 'wild': 17871,\n",
       " 'seas': 13950,\n",
       " 'rolled': 13512,\n",
       " 'island': 8779,\n",
       " 'bulk': 2190,\n",
       " 'undeliverable': 16825,\n",
       " 'nameless': 10574,\n",
       " 'perils': 11603,\n",
       " 'attending': 1120,\n",
       " 'marvels': 9929,\n",
       " 'patagonian': 11427,\n",
       " 'sights': 14374,\n",
       " 'sounds': 14832,\n",
       " 'helped': 7625,\n",
       " 'sway': 15744,\n",
       " 'wish': 17934,\n",
       " 'inducements': 8358,\n",
       " 'tormented': 16355,\n",
       " 'everlasting': 5667,\n",
       " 'itch': 8800,\n",
       " 'remote': 13102,\n",
       " 'love': 9638,\n",
       " 'forbidden': 6477,\n",
       " 'barbarous': 1336,\n",
       " 'coasts': 3027,\n",
       " 'ignoring': 8053,\n",
       " 'good': 7057,\n",
       " 'quick': 12661,\n",
       " 'perceive': 11570,\n",
       " 'horror': 7848,\n",
       " 'social': 14724,\n",
       " 'friendly': 6652,\n",
       " 'terms': 16021,\n",
       " 'inmates': 8475,\n",
       " 'place': 11833,\n",
       " 'lodges': 9556,\n",
       " 'reason': 12847,\n",
       " 'welcome': 17725,\n",
       " 'flood': 6371,\n",
       " 'gates': 6830,\n",
       " 'wonder': 17983,\n",
       " 'swung': 15799,\n",
       " 'open': 11021,\n",
       " 'conceits': 3297,\n",
       " 'swayed': 15745,\n",
       " 'purpose': 12579,\n",
       " 'floated': 6363,\n",
       " 'inmost': 8476,\n",
       " 'endless': 5429,\n",
       " 'processions': 12336,\n",
       " 'mid': 10150,\n",
       " 'hooded': 7809,\n",
       " 'snow': 14697,\n",
       " 'chapter': 2644,\n",
       " 'carpet': 2464,\n",
       " 'bag': 1259,\n",
       " 'stuffed': 15430,\n",
       " 'shirt': 14250,\n",
       " 'tucked': 16615,\n",
       " 'arm': 939,\n",
       " 'started': 15147,\n",
       " 'cape': 2403,\n",
       " 'horn': 7836,\n",
       " 'pacific': 11233,\n",
       " 'quitting': 12689,\n",
       " 'manhatto': 9833,\n",
       " 'duly': 5099,\n",
       " 'arrived': 963,\n",
       " 'bedford': 1473,\n",
       " 'saturday': 13760,\n",
       " 'night': 10717,\n",
       " 'december': 4173,\n",
       " 'disappointed': 4629,\n",
       " 'learning': 9299,\n",
       " 'packet': 11239,\n",
       " 'nantucket': 10577,\n",
       " 'sailed': 13676,\n",
       " 'offer': 10956,\n",
       " 'till': 16234,\n",
       " 'following': 6449,\n",
       " 'monday': 10338,\n",
       " 'young': 18175,\n",
       " 'candidates': 2369,\n",
       " 'pains': 11264,\n",
       " 'penalties': 11537,\n",
       " 'stop': 15292,\n",
       " 'embark': 5324,\n",
       " 'related': 13034,\n",
       " 'doing': 4890,\n",
       " 'craft': 3792,\n",
       " 'fine': 6229,\n",
       " 'boisterous': 1856,\n",
       " 'connected': 3418,\n",
       " 'famous': 5990,\n",
       " 'amazingly': 632,\n",
       " 'pleased': 11901,\n",
       " 'late': 9226,\n",
       " 'gradually': 7097,\n",
       " 'monopolising': 10350,\n",
       " 'business': 2257,\n",
       " 'matter': 9977,\n",
       " 'original': 11086,\n",
       " 'tyre': 16711,\n",
       " 'carthage': 2478,\n",
       " 'dead': 4130,\n",
       " 'stranded': 15332,\n",
       " 'aboriginal': 190,\n",
       " 'whalemen': 17755,\n",
       " 'red': 12933,\n",
       " 'sally': 13698,\n",
       " 'canoes': 2387,\n",
       " 'chase': 2676,\n",
       " 'leviathan': 9377,\n",
       " 'adventurous': 405,\n",
       " 'sloop': 14585,\n",
       " 'forth': 6557,\n",
       " 'partly': 11389,\n",
       " 'laden': 9139,\n",
       " 'imported': 8165,\n",
       " 'cobblestones': 3035,\n",
       " 'throw': 16169,\n",
       " 'whales': 17758,\n",
       " 'discover': 4667,\n",
       " 'risk': 13465,\n",
       " 'harpoon': 7452,\n",
       " 'bowsprit': 1966,\n",
       " 'day': 4122,\n",
       " 'ere': 5582,\n",
       " 'destined': 4458,\n",
       " 'port': 12036,\n",
       " 'concernment': 3314,\n",
       " 'eat': 5181,\n",
       " 'dubious': 5084,\n",
       " 'nay': 10630,\n",
       " 'dark': 4089,\n",
       " 'dismal': 4726,\n",
       " 'bitingly': 1695,\n",
       " 'cold': 3081,\n",
       " 'cheerless': 2712,\n",
       " 'anxious': 783,\n",
       " 'grapnels': 7119,\n",
       " 'sounded': 14828,\n",
       " 'pocket': 11945,\n",
       " 'brought': 2139,\n",
       " 'pieces': 11742,\n",
       " 'said': 13674,\n",
       " 'stood': 15287,\n",
       " 'middle': 10152,\n",
       " 'dreary': 5013,\n",
       " 'shouldering': 14292,\n",
       " 'comparing': 3223,\n",
       " 'gloom': 6998,\n",
       " 'darkness': 4096,\n",
       " 'wisdom': 17928,\n",
       " 'conclude': 3322,\n",
       " 'lodge': 9553,\n",
       " 'dear': 4143,\n",
       " 'sure': 15661,\n",
       " 'inquire': 8492,\n",
       " 'price': 12275,\n",
       " 'halting': 7355,\n",
       " 'steps': 15223,\n",
       " 'paced': 11231,\n",
       " 'sign': 14375,\n",
       " 'crossed': 3893,\n",
       " 'harpoons': 7458,\n",
       " 'looked': 9595,\n",
       " 'expensive': 5825,\n",
       " 'bright': 2075,\n",
       " 'windows': 17901,\n",
       " 'fish': 6257,\n",
       " 'inn': 8477,\n",
       " 'fervent': 6160,\n",
       " 'rays': 12809,\n",
       " 'melted': 10066,\n",
       " 'packed': 11238,\n",
       " 'ice': 8007,\n",
       " 'house': 7876,\n",
       " 'congealed': 3397,\n",
       " 'frost': 6685,\n",
       " 'lay': 9260,\n",
       " 'inches': 8233,\n",
       " 'hard': 7425,\n",
       " 'asphaltic': 1023,\n",
       " 'pavement': 11467,\n",
       " 'weary': 17689,\n",
       " 'struck': 15403,\n",
       " 'foot': 6461,\n",
       " 'flinty': 6355,\n",
       " 'projections': 12393,\n",
       " 'remorseless': 13100,\n",
       " 'service': 14089,\n",
       " 'soles': 14765,\n",
       " 'boots': 1902,\n",
       " 'miserable': 10240,\n",
       " 'plight': 11916,\n",
       " 'moment': 10330,\n",
       " 'watch': 17633,\n",
       " 'broad': 2114,\n",
       " 'glare': 6961,\n",
       " 'hear': 7547,\n",
       " 'tinkling': 16260,\n",
       " 'glasses': 6966,\n",
       " 'away': 1201,\n",
       " 'door': 4921,\n",
       " 'patched': 11429,\n",
       " 'stopping': 15295,\n",
       " 'went': 17734,\n",
       " 'instinct': 8547,\n",
       " 'followed': 6447,\n",
       " 'took': 16335,\n",
       " 'cheapest': 2690,\n",
       " 'cheeriest': 2709,\n",
       " 'inns': 8485,\n",
       " 'blocks': 1780,\n",
       " 'blackness': 1711,\n",
       " 'candle': 2371,\n",
       " 'moving': 10462,\n",
       " 'tomb': 16317,\n",
       " 'hour': 7873,\n",
       " 'proved': 12477,\n",
       " 'deserted': 4414,\n",
       " 'presently': 12229,\n",
       " 'smoky': 14656,\n",
       " 'light': 9419,\n",
       " 'proceeding': 12331,\n",
       " 'low': 9646,\n",
       " 'wide': 17852,\n",
       " 'building': 2183,\n",
       " 'invitingly': 8724,\n",
       " 'careless': 2449,\n",
       " 'meant': 10017,\n",
       " 'uses': 17202,\n",
       " 'public': 12515,\n",
       " 'entering': 5517,\n",
       " 'stumble': 15434,\n",
       " 'ash': 1003,\n",
       " 'box': 1967,\n",
       " 'porch': 12029,\n",
       " 'ha': 7305,\n",
       " 'flying': 6414,\n",
       " 'particles': 11381,\n",
       " 'choked': 2771,\n",
       " 'ashes': 1006,\n",
       " 'destroyed': 4462,\n",
       " 'gomorrah': 7053,\n",
       " 'trap': 16482,\n",
       " 'picked': 11728,\n",
       " 'hearing': 7550,\n",
       " 'loud': 9628,\n",
       " 'voice': 17467,\n",
       " 'pushed': 12598,\n",
       " 'opened': 11022,\n",
       " 'interior': 8614,\n",
       " 'black': 1704,\n",
       " 'parliament': 11358,\n",
       " 'sitting': 14453,\n",
       " 'tophet': 16343,\n",
       " 'faces': 5938,\n",
       " 'turned': 16656,\n",
       " 'rows': 13573,\n",
       " 'peer': 11521,\n",
       " 'angel': 706,\n",
       " 'doom': 4919,\n",
       " 'beating': 1454,\n",
       " 'book': 1885,\n",
       " 'pulpit': 12535,\n",
       " 'negro': 10668,\n",
       " 'church': 2807,\n",
       " 'preacher': 12148,\n",
       " 'text': 16057,\n",
       " 'weeping': 17716,\n",
       " 'wailing': 17521,\n",
       " 'teeth': 15966,\n",
       " 'gnashing': 7017,\n",
       " 'muttered': 10546,\n",
       " 'backing': 1240,\n",
       " 'wretched': 18080,\n",
       " 'entertainment': 5526,\n",
       " 'dim': 4583,\n",
       " 'docks': 4871,\n",
       " 'forlorn': 6536,\n",
       " 'creaking': 3819,\n",
       " 'swinging': 15786,\n",
       " 'white': 17823,\n",
       " 'painting': 11269,\n",
       " 'faintly': 5962,\n",
       " 'representing': 13176,\n",
       " 'tall': 15870,\n",
       " 'jet': 8864,\n",
       " 'misty': 10279,\n",
       " 'spray': 15040,\n",
       " 'words': 18017,\n",
       " 'underneath': 16834,\n",
       " 'spouter': 15026,\n",
       " 'peter': 11674,\n",
       " 'ominous': 10995,\n",
       " 'connexion': 3422,\n",
       " 'common': 3186,\n",
       " 'suppose': 15648,\n",
       " 'emigrant': 5354,\n",
       " 'quiet': 12673,\n",
       " 'dilapidated': 4574,\n",
       " 'wooden': 18004,\n",
       " 'carted': 2476,\n",
       " 'ruins': 13601,\n",
       " 'burnt': 2245,\n",
       " 'district': 4820,\n",
       " 'poverty': 12117,\n",
       " 'stricken': 15368,\n",
       " 'creak': 3818,\n",
       " 'spot': 15019,\n",
       " 'cheap': 2689,\n",
       " 'lodgings': 9558,\n",
       " 'best': 1610,\n",
       " 'pea': 11475,\n",
       " 'coffee': 3057,\n",
       " 'queer': 12649,\n",
       " 'gable': 6749,\n",
       " 'ended': 5425,\n",
       " 'palsied': 11294,\n",
       " 'sharp': 14172,\n",
       " 'bleak': 1749,\n",
       " 'corner': 3662,\n",
       " 'tempestuous': 15983,\n",
       " 'wind': 17894,\n",
       " 'euroclydon': 5647,\n",
       " 'kept': 9016,\n",
       " 'worse': 18036,\n",
       " 'howling': 7896,\n",
       " 'paul': 11455,\n",
       " 'tossed': 16374,\n",
       " 'mighty': 10167,\n",
       " 'pleasant': 11897,\n",
       " 'zephyr': 18189,\n",
       " 'doors': 4922,\n",
       " 'hob': 7748,\n",
       " 'toasting': 16289,\n",
       " 'bed': 1464,\n",
       " 'judging': 8947,\n",
       " 'called': 2332,\n",
       " 'says': 13795,\n",
       " 'writer': 18091,\n",
       " 'works': 18026,\n",
       " 'possess': 12064,\n",
       " 'copy': 3641,\n",
       " 'extant': 5872,\n",
       " 'maketh': 9790,\n",
       " 'thou': 16128,\n",
       " 'lookest': 9599,\n",
       " 'glass': 6965,\n",
       " 'window': 17900,\n",
       " 'outside': 11149,\n",
       " 'observest': 10896,\n",
       " 'sashless': 13745,\n",
       " 'sides': 14365,\n",
       " 'wight': 17865,\n",
       " 'death': 4146,\n",
       " 'glazier': 6970,\n",
       " 'passage': 11399,\n",
       " ...}"
      ]
     },
     "execution_count": 102,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "wcv.vocabulary_"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 103,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/svg+xml": [
       "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\r\n",
       "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\r\n",
       " \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\r\n",
       "<!-- Generated by graphviz version 2.38.0 (20140413.2041)\r\n",
       " -->\r\n",
       "<!-- Title: Tree Pages: 1 -->\r\n",
       "<svg width=\"488pt\" height=\"433pt\"\r\n",
       " viewBox=\"0.00 0.00 487.50 433.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\r\n",
       "<g id=\"graph0\" class=\"graph\" transform=\"scale(1 1) rotate(0) translate(4 429)\">\r\n",
       "<title>Tree</title>\r\n",
       "<polygon fill=\"white\" stroke=\"none\" points=\"-4,4 -4,-429 483.5,-429 483.5,4 -4,4\"/>\r\n",
       "<!-- 0 -->\r\n",
       "<g id=\"node1\" class=\"node\"><title>0</title>\r\n",
       "<path fill=\"#fbeade\" stroke=\"black\" d=\"M396,-425C396,-425 274,-425 274,-425 268,-425 262,-419 262,-413 262,-413 262,-354 262,-354 262,-348 268,-342 274,-342 274,-342 396,-342 396,-342 402,-342 408,-348 408,-354 408,-354 408,-413 408,-413 408,-419 402,-425 396,-425\"/>\r\n",
       "<text text-anchor=\"start\" x=\"299\" y=\"-409.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">whale ≤ 0.5</text>\r\n",
       "<text text-anchor=\"start\" x=\"297.5\" y=\"-394.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">gini = 0.496</text>\r\n",
       "<text text-anchor=\"start\" x=\"279\" y=\"-379.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">samples = 11000</text>\r\n",
       "<text text-anchor=\"start\" x=\"270\" y=\"-364.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">value = [6000, 5000]</text>\r\n",
       "<text text-anchor=\"start\" x=\"277.5\" y=\"-349.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">class = Moby Dick</text>\r\n",
       "</g>\r\n",
       "<!-- 1 -->\r\n",
       "<g id=\"node2\" class=\"node\"><title>1</title>\r\n",
       "<path fill=\"#fefcfa\" stroke=\"black\" d=\"M318,-306C318,-306 196,-306 196,-306 190,-306 184,-300 184,-294 184,-294 184,-235 184,-235 184,-229 190,-223 196,-223 196,-223 318,-223 318,-223 324,-223 330,-229 330,-235 330,-235 330,-294 330,-294 330,-300 324,-306 318,-306\"/>\r\n",
       "<text text-anchor=\"start\" x=\"229.5\" y=\"-290.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">joe ≤ 0.5</text>\r\n",
       "<text text-anchor=\"start\" x=\"228\" y=\"-275.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">gini = 0.5</text>\r\n",
       "<text text-anchor=\"start\" x=\"201\" y=\"-260.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">samples = 10122</text>\r\n",
       "<text text-anchor=\"start\" x=\"192\" y=\"-245.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">value = [5122, 5000]</text>\r\n",
       "<text text-anchor=\"start\" x=\"199.5\" y=\"-230.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">class = Moby Dick</text>\r\n",
       "</g>\r\n",
       "<!-- 0&#45;&gt;1 -->\r\n",
       "<g id=\"edge1\" class=\"edge\"><title>0&#45;&gt;1</title>\r\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M307.938,-341.907C302.07,-333.105 295.802,-323.703 289.741,-314.612\"/>\r\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"292.473,-312.4 284.014,-306.021 286.649,-316.283 292.473,-312.4\"/>\r\n",
       "<text text-anchor=\"middle\" x=\"279.111\" y=\"-326.835\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">True</text>\r\n",
       "</g>\r\n",
       "<!-- 6 -->\r\n",
       "<g id=\"node7\" class=\"node\"><title>6</title>\r\n",
       "<path fill=\"#e58139\" stroke=\"black\" d=\"M467.5,-298.5C467.5,-298.5 360.5,-298.5 360.5,-298.5 354.5,-298.5 348.5,-292.5 348.5,-286.5 348.5,-286.5 348.5,-242.5 348.5,-242.5 348.5,-236.5 354.5,-230.5 360.5,-230.5 360.5,-230.5 467.5,-230.5 467.5,-230.5 473.5,-230.5 479.5,-236.5 479.5,-242.5 479.5,-242.5 479.5,-286.5 479.5,-286.5 479.5,-292.5 473.5,-298.5 467.5,-298.5\"/>\r\n",
       "<text text-anchor=\"start\" x=\"385\" y=\"-283.3\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">gini = 0.0</text>\r\n",
       "<text text-anchor=\"start\" x=\"366.5\" y=\"-268.3\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">samples = 878</text>\r\n",
       "<text text-anchor=\"start\" x=\"365.5\" y=\"-253.3\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">value = [878, 0]</text>\r\n",
       "<text text-anchor=\"start\" x=\"356.5\" y=\"-238.3\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">class = Moby Dick</text>\r\n",
       "</g>\r\n",
       "<!-- 0&#45;&gt;6 -->\r\n",
       "<g id=\"edge6\" class=\"edge\"><title>0&#45;&gt;6</title>\r\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M362.409,-341.907C370.008,-330.652 378.269,-318.418 385.907,-307.106\"/>\r\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"388.91,-308.913 391.605,-298.667 383.109,-304.996 388.91,-308.913\"/>\r\n",
       "<text text-anchor=\"middle\" x=\"396.364\" y=\"-319.51\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">False</text>\r\n",
       "</g>\r\n",
       "<!-- 2 -->\r\n",
       "<g id=\"node3\" class=\"node\"><title>2</title>\r\n",
       "<path fill=\"#fcefe6\" stroke=\"black\" d=\"M226,-187C226,-187 104,-187 104,-187 98,-187 92,-181 92,-175 92,-175 92,-116 92,-116 92,-110 98,-104 104,-104 104,-104 226,-104 226,-104 232,-104 238,-110 238,-116 238,-116 238,-175 238,-175 238,-181 232,-187 226,-187\"/>\r\n",
       "<text text-anchor=\"start\" x=\"139\" y=\"-171.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">mr ≤ 0.5</text>\r\n",
       "<text text-anchor=\"start\" x=\"127.5\" y=\"-156.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">gini = 0.498</text>\r\n",
       "<text text-anchor=\"start\" x=\"113.5\" y=\"-141.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">samples = 9588</text>\r\n",
       "<text text-anchor=\"start\" x=\"100\" y=\"-126.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">value = [5121, 4467]</text>\r\n",
       "<text text-anchor=\"start\" x=\"107.5\" y=\"-111.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">class = Moby Dick</text>\r\n",
       "</g>\r\n",
       "<!-- 1&#45;&gt;2 -->\r\n",
       "<g id=\"edge2\" class=\"edge\"><title>1&#45;&gt;2</title>\r\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M225.081,-222.907C218.016,-213.923 210.461,-204.315 203.176,-195.05\"/>\r\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"205.795,-192.718 196.863,-187.021 200.292,-197.045 205.795,-192.718\"/>\r\n",
       "</g>\r\n",
       "<!-- 5 -->\r\n",
       "<g id=\"node6\" class=\"node\"><title>5</title>\r\n",
       "<path fill=\"#399de5\" stroke=\"black\" d=\"M430,-179.5C430,-179.5 268,-179.5 268,-179.5 262,-179.5 256,-173.5 256,-167.5 256,-167.5 256,-123.5 256,-123.5 256,-117.5 262,-111.5 268,-111.5 268,-111.5 430,-111.5 430,-111.5 436,-111.5 442,-117.5 442,-123.5 442,-123.5 442,-167.5 442,-167.5 442,-173.5 436,-179.5 430,-179.5\"/>\r\n",
       "<text text-anchor=\"start\" x=\"311.5\" y=\"-164.3\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">gini = 0.004</text>\r\n",
       "<text text-anchor=\"start\" x=\"301.5\" y=\"-149.3\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">samples = 534</text>\r\n",
       "<text text-anchor=\"start\" x=\"300.5\" y=\"-134.3\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">value = [1, 533]</text>\r\n",
       "<text text-anchor=\"start\" x=\"264\" y=\"-119.3\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">class = Great Expectations</text>\r\n",
       "</g>\r\n",
       "<!-- 1&#45;&gt;5 -->\r\n",
       "<g id=\"edge5\" class=\"edge\"><title>1&#45;&gt;5</title>\r\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M288.919,-222.907C297.856,-211.542 307.578,-199.178 316.545,-187.774\"/>\r\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"319.49,-189.691 322.92,-179.667 313.987,-185.364 319.49,-189.691\"/>\r\n",
       "</g>\r\n",
       "<!-- 3 -->\r\n",
       "<g id=\"node4\" class=\"node\"><title>3</title>\r\n",
       "<path fill=\"#f9e4d5\" stroke=\"black\" d=\"M134,-68C134,-68 12,-68 12,-68 6,-68 0,-62 0,-56 0,-56 0,-12 0,-12 0,-6 6,-0 12,-0 12,-0 134,-0 134,-0 140,-0 146,-6 146,-12 146,-12 146,-56 146,-56 146,-62 140,-68 134,-68\"/>\r\n",
       "<text text-anchor=\"start\" x=\"35.5\" y=\"-52.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">gini = 0.493</text>\r\n",
       "<text text-anchor=\"start\" x=\"21.5\" y=\"-37.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">samples = 9088</text>\r\n",
       "<text text-anchor=\"start\" x=\"8\" y=\"-22.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">value = [5084, 4004]</text>\r\n",
       "<text text-anchor=\"start\" x=\"15.5\" y=\"-7.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">class = Moby Dick</text>\r\n",
       "</g>\r\n",
       "<!-- 2&#45;&gt;3 -->\r\n",
       "<g id=\"edge3\" class=\"edge\"><title>2&#45;&gt;3</title>\r\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M130.743,-103.726C123.156,-94.6966 115.113,-85.1235 107.516,-76.0816\"/>\r\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"110.09,-73.7045 100.978,-68.2996 104.731,-78.2075 110.09,-73.7045\"/>\r\n",
       "</g>\r\n",
       "<!-- 4 -->\r\n",
       "<g id=\"node5\" class=\"node\"><title>4</title>\r\n",
       "<path fill=\"#49a5e7\" stroke=\"black\" d=\"M338,-68C338,-68 176,-68 176,-68 170,-68 164,-62 164,-56 164,-56 164,-12 164,-12 164,-6 170,-0 176,-0 176,-0 338,-0 338,-0 344,-0 350,-6 350,-12 350,-12 350,-56 350,-56 350,-62 344,-68 338,-68\"/>\r\n",
       "<text text-anchor=\"start\" x=\"219.5\" y=\"-52.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">gini = 0.137</text>\r\n",
       "<text text-anchor=\"start\" x=\"209.5\" y=\"-37.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">samples = 500</text>\r\n",
       "<text text-anchor=\"start\" x=\"204\" y=\"-22.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">value = [37, 463]</text>\r\n",
       "<text text-anchor=\"start\" x=\"172\" y=\"-7.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">class = Great Expectations</text>\r\n",
       "</g>\r\n",
       "<!-- 2&#45;&gt;4 -->\r\n",
       "<g id=\"edge4\" class=\"edge\"><title>2&#45;&gt;4</title>\r\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M199.257,-103.726C206.844,-94.6966 214.887,-85.1235 222.484,-76.0816\"/>\r\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"225.269,-78.2075 229.022,-68.2996 219.91,-73.7045 225.269,-78.2075\"/>\r\n",
       "</g>\r\n",
       "</g>\r\n",
       "</svg>\r\n"
      ],
      "text/plain": [
       "<graphviz.files.Source at 0x2464535a688>"
      ]
     },
     "execution_count": 103,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "dot_data = sklearn.tree.export_graphviz(\n",
    "    dt,\n",
    "    out_file=None,\n",
    "    feature_names=list(sorted(wcv.vocabulary_.keys())),\n",
    "    class_names=[\"Moby Dick\", \"Great Expectations\"],\n",
    "    filled=True,\n",
    "    rounded=True,\n",
    "    special_characters=True)\n",
    "graph = graphviz.Source(dot_data)\n",
    "graph"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Note that the most important features to the decision tree are not the same as the logistic regression model. Here the words of greatest interest are \"whale\", \"joe\", and \"mr\". whale is a word that only occurs in Great Expectations. joe is a word that occurs almost exclusively in Great Expectations, and \"mr\" is a word that occurs almost exclusively in Great Expectations (463/500 times). "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The tree above has 63% percent training accuracy and 46% percent test accuracy. This is pretty terrible! The model actually does worse than random guessing on the unseen test set."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 104,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Train Accuracy: 0.6325454545454545\n",
      "Test Accuracy: 0.46879334257975036\n"
     ]
    }
   ],
   "source": [
    "dt_predictions_train = dt.predict(phi_both_books_train)\n",
    "dt_predictions_test = dt.predict(phi_both_books_test)\n",
    "print(f\"Train Accuracy: {accuracy_score(y_train, dt_predictions_train)}\")\n",
    "print(f\"Test Accuracy: {accuracy_score(y_test, dt_predictions_test)}\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Above, we set a very high bar for our min $\\Delta WG$. If we remove that restriction, we'll get a much more complex tree not shown. This tree has 98% training accuracy and 80% test accuracy. The very high training accuracy is unsurprising since a decision tree will get 100% so long as there are no overlappnig points. The test accuracy is somewhat lower than our unregularized logistic regression model above."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 105,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Train Accuracy: 0.9948181818181818\n",
      "Test Accuracy: 0.8020110957004161\n"
     ]
    }
   ],
   "source": [
    "dt = DecisionTreeClassifier()\n",
    "dt.fit(phi_both_books_train, y_train)\n",
    "dt_predictions_train = dt.predict(phi_both_books_train)\n",
    "dt_predictions_test = dt.predict(phi_both_books_test)\n",
    "print(f\"Train Accuracy: {accuracy_score(y_train, dt_predictions_train)}\")\n",
    "print(f\"Test Accuracy: {accuracy_score(y_test, dt_predictions_test)}\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 106,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.8038181818181818"
      ]
     },
     "execution_count": 106,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from sklearn.model_selection import GridSearchCV\n",
    "\n",
    "parameters = {'min_impurity_decrease': np.linspace(0, 0.001, 20)}\n",
    "\n",
    "dt_model_finder = GridSearchCV(DecisionTreeClassifier(),\n",
    "                               parameters,\n",
    "                               n_jobs=-1,\n",
    "                               cv=10)\n",
    "dt_model_finder.fit(phi_both_books_train, y_train)\n",
    "dt_model_finder.best_score_"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 107,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'min_impurity_decrease': 0.00010526315789473685}"
      ]
     },
     "execution_count": 107,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "dt_model_finder.best_params_"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 111,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Train Accuracy: 0.9656363636363636\n",
      "Test Accuracy: 0.800624133148405\n"
     ]
    }
   ],
   "source": [
    "dt_predictions_train = dt_model_finder.best_estimator_.predict(\n",
    "    phi_both_books_train)\n",
    "dt_predictions_test = dt_model_finder.best_estimator_.predict(\n",
    "    phi_both_books_test)\n",
    "print(f\"Train Accuracy: {accuracy_score(y_train, dt_predictions_train)}\")\n",
    "print(f\"Test Accuracy: {accuracy_score(y_test, dt_predictions_test)}\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Given that our most \"powerful\" technique is the random forest, let's see how good we can do on accuracy if we train a random forest model. Since we are just going for maximum accuracy, let's also perform a Grid Search. If you uncomment and run, it will take a very long time (perhaps more than an hour) to complete training."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 112,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.8563636363636364"
      ]
     },
     "execution_count": 112,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from sklearn.ensemble import RandomForestClassifier\n",
    "from sklearn.model_selection import GridSearchCV\n",
    "\n",
    "parameters = {\n",
    "    'min_impurity_decrease': [0, 0.01, 0.05],\n",
    "    \"max_leaf_nodes\": [3, 5, 10, None],\n",
    "    \"max_features\": [\"auto\", \"sqrt\", \"log2\"]\n",
    "}\n",
    "\n",
    "rf_model_finder = GridSearchCV(RandomForestClassifier(),\n",
    "                               parameters,\n",
    "                               n_jobs=-1,\n",
    "                               cv=10)\n",
    "rf_model_finder.fit(phi_both_books_train, y_train)\n",
    "rf_model_finder.best_score_"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 113,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'max_features': 'log2', 'max_leaf_nodes': None, 'min_impurity_decrease': 0}"
      ]
     },
     "execution_count": 113,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "rf_model_finder.best_params_"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 115,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "RandomForestClassifier(bootstrap=True, ccp_alpha=0.0, class_weight=None,\n",
       "                       criterion='gini', max_depth=None, max_features='log2',\n",
       "                       max_leaf_nodes=None, max_samples=None,\n",
       "                       min_impurity_decrease=0, min_impurity_split=None,\n",
       "                       min_samples_leaf=1, min_samples_split=2,\n",
       "                       min_weight_fraction_leaf=0.0, n_estimators=100,\n",
       "                       n_jobs=None, oob_score=False, random_state=None,\n",
       "                       verbose=0, warm_start=False)"
      ]
     },
     "execution_count": 115,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "rf_model_finder.best_estimator_"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Above, we see that the cross validation score for our best random forest estimator was 85%.n_jobs="
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 116,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Train Accuracy: 0.9948181818181818\n",
      "Test Accuracy: 0.875866851595007\n"
     ]
    }
   ],
   "source": [
    "rf = rf_model_finder.best_estimator_\n",
    "rf_predictions_train = rf.predict(phi_both_books_train)\n",
    "rf_predictions_test = rf.predict(phi_both_books_test)\n",
    "print(f\"Train Accuracy: {accuracy_score(y_train, rf_predictions_train)}\")\n",
    "print(f\"Test Accuracy: {accuracy_score(y_test, rf_predictions_test)}\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Our overall training and test accuracy is 98% and 86% on the training and test set. It seems our random forest does about as well as our unregularized logistic regression model on unseen data."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Quick note before we continue: CountVectorizer assumes there are spaces between words, which works well with lots of western languages. However, to do word counts in Chinese, Japanese, etc. you'll need to use a special library.\n",
    "\n",
    "For Chinese, I recommend `jieba`: https://github.com/fxsjy/jieba"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 2-Grams"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 117,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'cows like': 0,\n",
       " 'like drive': 4,\n",
       " 'drive orange': 1,\n",
       " 'orange cars': 5,\n",
       " 'fish eats': 3,\n",
       " 'eats organic': 2,\n",
       " 'organic kale': 6}"
      ]
     },
     "execution_count": 117,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "wcv2 = CountVectorizer(stop_words=\"english\", ngram_range=(2, 2))\n",
    "wcv2.fit([\"Cows like to drive orange cars.\", \"The fish eats organic kale.\"])\n",
    "wcv2.vocabulary_"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 118,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'cows like': 0,\n",
       " 'like drive': 10,\n",
       " 'drive orange': 3,\n",
       " 'orange cars': 13,\n",
       " 'cows like drive': 1,\n",
       " 'like drive orange': 11,\n",
       " 'drive orange cars': 4,\n",
       " 'cows like drive orange': 2,\n",
       " 'like drive orange cars': 12,\n",
       " 'fish eats': 7,\n",
       " 'eats organic': 5,\n",
       " 'organic kale': 14,\n",
       " 'fish eats organic': 8,\n",
       " 'eats organic kale': 6,\n",
       " 'fish eats organic kale': 9}"
      ]
     },
     "execution_count": 118,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "wcv2 = CountVectorizer(stop_words=\"english\", ngram_range=(2, 4))\n",
    "wcv2.fit([\"Cows like to drive orange cars.\", \"The fish eats organic kale.\"])\n",
    "wcv2.vocabulary_"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Images"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 119,
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.datasets import fetch_openml\n",
    "X, y = fetch_openml('mnist_784', version=1, return_X_y=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 120,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(70000, 784)"
      ]
     },
     "execution_count": 120,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "X.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 121,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'3'"
      ]
     },
     "execution_count": 121,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "y[50]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 122,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([  0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,\n",
       "         0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,\n",
       "         0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,\n",
       "         0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,\n",
       "         0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,\n",
       "         0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,\n",
       "         0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,\n",
       "         0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,\n",
       "         0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,\n",
       "         0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,\n",
       "         0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,\n",
       "         0.,  12.,  56., 140., 126., 175., 200.,  96.,   2.,   0.,   0.,\n",
       "         0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,\n",
       "         0.,   0.,   0.,   0.,   0.,  35., 166., 238., 254., 246., 242.,\n",
       "       253., 246., 254.,  67.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,\n",
       "         0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,\n",
       "       184., 182., 146., 127.,  70.,  30.,  45.,  36., 215., 175.,   0.,\n",
       "         0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,\n",
       "         0.,   0.,   0.,   0.,   0.,   0.,  30.,   0.,   0.,   0.,   0.,\n",
       "         0.,   0.,   0., 207., 246.,  14.,   0.,   0.,   0.,   0.,   0.,\n",
       "         0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,\n",
       "         0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,  55., 251., 169.,\n",
       "         1.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,\n",
       "         0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,\n",
       "         0.,   0.,  11., 215., 232.,  20.,   0.,   0.,   0.,   0.,   0.,\n",
       "         0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,\n",
       "         0.,   0.,   0.,   0.,   0.,   0.,   0.,  20., 190., 250.,  61.,\n",
       "         0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,\n",
       "         0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,\n",
       "        24., 118., 206., 254., 248., 142., 108.,  18.,   0.,   0.,   0.,\n",
       "         0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,\n",
       "         0.,   0.,   0.,   0.,   0.,  63., 223., 254., 254., 254., 254.,\n",
       "       254., 254., 209.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,\n",
       "         0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,\n",
       "        52., 174., 129.,  95.,  16.,  16.,  16., 106., 249., 125.,   0.,\n",
       "         0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,\n",
       "         0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,\n",
       "         0.,   0.,   0., 179., 239.,   0.,   0.,   0.,   0.,   0.,   0.,\n",
       "         0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,\n",
       "         0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,  80., 239.,\n",
       "         0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,\n",
       "         0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,\n",
       "         0.,   0.,   0.,   0.,  80., 244.,  20.,   0.,   0.,   0.,   0.,\n",
       "         0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,\n",
       "         0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0., 100.,\n",
       "       239.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,\n",
       "         0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,\n",
       "         0.,   0.,   0.,   0.,   0., 234., 239.,   0.,   0.,   0.,   0.,\n",
       "         0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,\n",
       "         4., 140.,   5.,   0.,   0.,   0.,   0.,   0.,   0.,   3., 150.,\n",
       "       254., 129.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,\n",
       "         0.,   0.,   0.,   0.,   0.,   0.,  64., 254., 181.,  38.,   0.,\n",
       "         0.,   0.,   0.,  34., 188., 254., 209.,  20.,   0.,   0.,   0.,\n",
       "         0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,\n",
       "         0.,  12., 226., 255., 223.,  88.,  68., 128., 157., 242., 254.,\n",
       "       207.,  23.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,\n",
       "         0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,  45., 210., 254.,\n",
       "       254., 254., 254., 255., 254., 187.,  49.,   0.,   0.,   0.,   0.,\n",
       "         0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,\n",
       "         0.,   0.,   0.,   0.,  41., 129., 239., 229., 179.,  91.,  16.,\n",
       "         3.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,\n",
       "         0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,\n",
       "         0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,\n",
       "         0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,\n",
       "         0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,\n",
       "         0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,\n",
       "         0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,\n",
       "         0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,\n",
       "         0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,\n",
       "         0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,\n",
       "         0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,\n",
       "         0.,   0.,   0.])"
      ]
     },
     "execution_count": 122,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "X[50]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 123,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "784"
      ]
     },
     "execution_count": 123,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "len(X[50])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 124,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[  0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,\n",
       "          0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,\n",
       "          0.,   0.,   0.,   0.,   0.,   0.],\n",
       "       [  0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,\n",
       "          0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,\n",
       "          0.,   0.,   0.,   0.,   0.,   0.],\n",
       "       [  0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,\n",
       "          0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,\n",
       "          0.,   0.,   0.,   0.,   0.,   0.],\n",
       "       [  0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,\n",
       "          0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,\n",
       "          0.,   0.,   0.,   0.,   0.,   0.],\n",
       "       [  0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,  12.,\n",
       "         56., 140., 126., 175., 200.,  96.,   2.,   0.,   0.,   0.,   0.,\n",
       "          0.,   0.,   0.,   0.,   0.,   0.],\n",
       "       [  0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,  35., 166., 238.,\n",
       "        254., 246., 242., 253., 246., 254.,  67.,   0.,   0.,   0.,   0.,\n",
       "          0.,   0.,   0.,   0.,   0.,   0.],\n",
       "       [  0.,   0.,   0.,   0.,   0.,   0.,   0.,   0., 184., 182., 146.,\n",
       "        127.,  70.,  30.,  45.,  36., 215., 175.,   0.,   0.,   0.,   0.,\n",
       "          0.,   0.,   0.,   0.,   0.,   0.],\n",
       "       [  0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,  30.,   0.,   0.,\n",
       "          0.,   0.,   0.,   0.,   0., 207., 246.,  14.,   0.,   0.,   0.,\n",
       "          0.,   0.,   0.,   0.,   0.,   0.],\n",
       "       [  0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,\n",
       "          0.,   0.,   0.,   0.,  55., 251., 169.,   1.,   0.,   0.,   0.,\n",
       "          0.,   0.,   0.,   0.,   0.,   0.],\n",
       "       [  0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,\n",
       "          0.,   0.,   0.,  11., 215., 232.,  20.,   0.,   0.,   0.,   0.,\n",
       "          0.,   0.,   0.,   0.,   0.,   0.],\n",
       "       [  0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,\n",
       "          0.,   0.,  20., 190., 250.,  61.,   0.,   0.,   0.,   0.,   0.,\n",
       "          0.,   0.,   0.,   0.,   0.,   0.],\n",
       "       [  0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,\n",
       "         24., 118., 206., 254., 248., 142., 108.,  18.,   0.,   0.,   0.,\n",
       "          0.,   0.,   0.,   0.,   0.,   0.],\n",
       "       [  0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,  63.,\n",
       "        223., 254., 254., 254., 254., 254., 254., 209.,   0.,   0.,   0.,\n",
       "          0.,   0.,   0.,   0.,   0.,   0.],\n",
       "       [  0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,  52.,\n",
       "        174., 129.,  95.,  16.,  16.,  16., 106., 249., 125.,   0.,   0.,\n",
       "          0.,   0.,   0.,   0.,   0.,   0.],\n",
       "       [  0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,\n",
       "          0.,   0.,   0.,   0.,   0.,   0.,   0., 179., 239.,   0.,   0.,\n",
       "          0.,   0.,   0.,   0.,   0.,   0.],\n",
       "       [  0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,\n",
       "          0.,   0.,   0.,   0.,   0.,   0.,   0.,  80., 239.,   0.,   0.,\n",
       "          0.,   0.,   0.,   0.,   0.,   0.],\n",
       "       [  0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,\n",
       "          0.,   0.,   0.,   0.,   0.,   0.,   0.,  80., 244.,  20.,   0.,\n",
       "          0.,   0.,   0.,   0.,   0.,   0.],\n",
       "       [  0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,\n",
       "          0.,   0.,   0.,   0.,   0.,   0.,   0., 100., 239.,   0.,   0.,\n",
       "          0.,   0.,   0.,   0.,   0.,   0.],\n",
       "       [  0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,\n",
       "          0.,   0.,   0.,   0.,   0.,   0.,   0., 234., 239.,   0.,   0.,\n",
       "          0.,   0.,   0.,   0.,   0.,   0.],\n",
       "       [  0.,   0.,   0.,   0.,   0.,   0.,   0.,   4., 140.,   5.,   0.,\n",
       "          0.,   0.,   0.,   0.,   0.,   3., 150., 254., 129.,   0.,   0.,\n",
       "          0.,   0.,   0.,   0.,   0.,   0.],\n",
       "       [  0.,   0.,   0.,   0.,   0.,   0.,   0.,  64., 254., 181.,  38.,\n",
       "          0.,   0.,   0.,   0.,  34., 188., 254., 209.,  20.,   0.,   0.,\n",
       "          0.,   0.,   0.,   0.,   0.,   0.],\n",
       "       [  0.,   0.,   0.,   0.,   0.,   0.,   0.,  12., 226., 255., 223.,\n",
       "         88.,  68., 128., 157., 242., 254., 207.,  23.,   0.,   0.,   0.,\n",
       "          0.,   0.,   0.,   0.,   0.,   0.],\n",
       "       [  0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,  45., 210., 254.,\n",
       "        254., 254., 254., 255., 254., 187.,  49.,   0.,   0.,   0.,   0.,\n",
       "          0.,   0.,   0.,   0.,   0.,   0.],\n",
       "       [  0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,  41., 129.,\n",
       "        239., 229., 179.,  91.,  16.,   3.,   0.,   0.,   0.,   0.,   0.,\n",
       "          0.,   0.,   0.,   0.,   0.,   0.],\n",
       "       [  0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,\n",
       "          0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,\n",
       "          0.,   0.,   0.,   0.,   0.,   0.],\n",
       "       [  0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,\n",
       "          0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,\n",
       "          0.,   0.,   0.,   0.,   0.,   0.],\n",
       "       [  0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,\n",
       "          0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,\n",
       "          0.,   0.,   0.,   0.,   0.,   0.],\n",
       "       [  0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,\n",
       "          0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,\n",
       "          0.,   0.,   0.,   0.,   0.,   0.]])"
      ]
     },
     "execution_count": 124,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "X[50].reshape(28, 28)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 126,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.image.AxesImage at 0x246479c2488>"
      ]
     },
     "execution_count": 126,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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AAAYiZACAACMREgBAABGIqQAAAAjEVIAAICRCCkAAMBIhBQAAGAkQgoAADASIQUAABiJkAIAAIxESAEAAEYipAAAACMRUgAAgJEIKQAAwEiEFAAAYCRCCgAAMBIhBQAAGImQAgAAjERIAQAARiKkAAAAIxFSAACAkQgpAADASIQUAABgJEIKAAAwEiEFAAAYiZACAACMREgBAABGIqQAAAAjEVIAAICRCCkAAMBIhBQAAGAkQgoAADASIQUAABiJkAIAAIxESAEAAEaKDvUAAARPYmJilf3x8fGWbSIjq/690qVLF1vv/2//9m+26s+fP2+rPi0tzVa9JDVr1sxW/euvv26rftWqVbbqHQ6HrXoglDiSAgAAjERIAQAARiKkAAAAIxFSAACAkQgpAADASIQUAABgJEIKAAAwEiEFAAAYiZACAACMREgBAABGIqQAAAAjEVIAAICRCCkAAMBIhBQAAGAkQgoAADBSdKgHANRW7du3t72P5557zlb94MGDr7vN/v37q30tKSnJ1vuXl5fbqq+srLRVn5CQYKteki5dumSrPisry1b9iRMnbNVv2LDBVj0QShxJAQAARiKkAAAAIxFSAACAkQgpAADASIQUAABgJEIKAAAwEiEFAAAYiZACAACMREgBAABGIqQAAAAjEVIAAICRCCkAAMBIhBQAAGAkQgoAADASIQUAABgpOtQDAGqrV1991fY+HA6Hrfr//u//rrI/OjpakyZNkiS9++67qqysrHK7oqIiW++/detWW/X79++3VV+/fn1b9ZJUXl5uq37NmjW26qdMmWKrfsOGDbbqgVDiSAoAADASIQUAABiJkAIAAIxESAEAAEYipAAAACMRUgAAgJEIKQAAwEiEFAAAYCRCCgAAMBIhBQAAGImQAgAAjERIAQAARiKkAAAAIxFSAACAkQgpAADASNGhHgBQW02cONH2Po4fPx6AkXiKj4/XpEmTJEl/+MMfVFZWFpT3gVReXm6r/u6777ZVX79+fVv158+ft1UP2MGRFAAAYCRCCgAAMBIhBQAAGImQAgAAjERIAQAARiKkAAAAIxFSAACAkQgpAADASIQUAABgJEIKAAAwEiEFAAAYiZACAACMREgBAABGIqQAAAAjEVIAAICRokM9AKC2On78eKiHgADo1auXrfouXbrYql+9erWt+gsXLtiqB0KJIykA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W7du9WpsAAAgdAJyuueLL76wtAcNGqR69ep5XT906FDl5ua62jt27PDYJjs729IeMmSIV7cWx8bGasyYMXr++eddfbm5ubrjjju8Hh9uTH369LFV//jjj9seQ6dOnWzVz5gxo8r+unXruv53hw4dXKdc3R08eNDW+9cG7dq1s1WfmZlpq37AgAG26r29IaE6f/7zn23VA3YE5EhKfn6+pd29e3ef6t3XSSksLPTY5ssvv7S0f/Ob33i9/4EDB1ran3/+ueW0EQAAME9AjqQMHz5cXbp00ZkzZ3TmzBm1bdvWp3r3X3Hup3DKysosdwJJ0m233eb1/lu1aqWUlBTXbdFnz57VwYMH1blzZ5/GCQAAak5AQsrgwYM1ePBgv+t3795taaemplra+fn5lotdU1JSfFr4TZLat29vWbvlu+++I6QAAGAwI57ds3r1aks7LS3N0j527Jil7c8y+i1btrS0r15DBQAAmCfkISU3N1f79u2z9N11112WtvvqtU2aNPH5fVJSUiztM2fO+LwPAABQc4L2gEFvnDp1Ss8995ylr02bNurfv7+lr6ioyNKuX7++z+/lfrfR+fPnfd6HryIjIxUfH2/pu7rt/hrMEhcXF+ohKCoqylb91XfxXO3qv+1afydztPr/D70VGRna34LXW6bhegIxB6raB9+FNw47n4GQhZSSkhI98sgjKi4utvQ/+eSTHl/M5eXllnZCQoLP7+f+ISgrK/N5H75KS0tTaWlpta97+3wj3LjuvvvuoNd//fXXtt4DZuvatautevfT7cHAdyGqE5KIX1JSogkTJnjcsXP//ferX79+HttXVFRY2tHRvmcr95rLly/7vA8AAFBzavxIyrlz5/TII49o165dlv5evXrpySefrLLmypUrlrY/h47ca2piafxdu3Z5LAgWHx/v+tWQkpJSI0d04J8777zTVv0nn3xiewzuD+z01ezZs6vsj4uLcx1B6d27t8fRyp+5r4F0I/J1SQV3dhdDcz/97au9e/faqv/Xf/1XW/VS1Wtf8V1449i8ebPHDTHeqtGQ8sMPP2j8+PE6fPiwpb9r16567bXXFBMTU2Wde797aPGG++JtVT3vJ9AcDsc1P3hlZWV8MA1W3T/cNcmfuX616laSvVp5eXm12zE/vfv/8FocDkeARuIfuz/IAjEHrrcPvgtrNzufgRo73bNn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\n",
      "text/plain": [
       "<Figure size 600x600 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.imshow(X[50].reshape(28, 28), cmap='gray')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 127,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'3'"
      ]
     },
     "execution_count": 127,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "y[50]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 128,
   "metadata": {},
   "outputs": [],
   "source": [
    "def homemade_image_features(x):\n",
    "    phi1 = np.count_nonzero(x == 0)\n",
    "    phi2 = np.count_nonzero(x < 64)\n",
    "    phi3 = np.count_nonzero((x < 128) & (x > 64))\n",
    "    phi4 = np.count_nonzero((x < 192) & (x > 128))\n",
    "    phi5 = np.count_nonzero(x > 192)\n",
    "    return np.array([phi1, phi2, phi3, phi4, phi5])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 130,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([656, 692,  16,  22,  52])"
      ]
     },
     "execution_count": 130,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "homemade_image_features(X[50])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 131,
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.model_selection import train_test_split\n",
    "X_train, X_test, y_train, y_test = train_test_split(X,\n",
    "                                                    y,\n",
    "                                                    test_size=0.33,\n",
    "                                                    random_state=42)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 132,
   "metadata": {},
   "outputs": [],
   "source": [
    "homemade_phi_train = np.apply_along_axis(homemade_image_features, 1, X_train)\n",
    "homemade_phi_test = np.apply_along_axis(homemade_image_features, 1, X_test)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 133,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[602, 636,  17,  18, 112],\n",
       "       [649, 680,  14,  20,  67],\n",
       "       [613, 654,  26,  18,  84],\n",
       "       ...,\n",
       "       [707, 723,   6,  17,  37],\n",
       "       [598, 624,  31,  15, 113],\n",
       "       [566, 600,  35,  18, 129]])"
      ]
     },
     "execution_count": 133,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "homemade_phi_train"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 134,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "LogisticRegression(C=1.0, class_weight=None, dual=False, fit_intercept=True,\n",
       "                   intercept_scaling=1, l1_ratio=None, max_iter=10000,\n",
       "                   multi_class='auto', n_jobs=None, penalty='l2',\n",
       "                   random_state=None, solver='lbfgs', tol=0.0001, verbose=0,\n",
       "                   warm_start=False)"
      ]
     },
     "execution_count": 134,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "lm = LogisticRegression(max_iter=10000)\n",
    "lm.fit(homemade_phi_train, y_train)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 135,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Training Accuracy: 0.2779317697228145\n",
      "Test Accuracy: 0.2777922077922078\n"
     ]
    }
   ],
   "source": [
    "lm_predictions_train_homemade = lm.predict(homemade_phi_train)\n",
    "lm_predictions_test_homemade = lm.predict(homemade_phi_test)\n",
    "print(\n",
    "    f\"Training Accuracy: {accuracy_score(y_train, lm_predictions_train_homemade)}\"\n",
    ")\n",
    "print(f\"Test Accuracy: {accuracy_score(y_test, lm_predictions_test_homemade)}\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 136,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAmIAAAJWCAYAAAD7vetdAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAXEQAAFxEByibzPwAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjMsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+AADFEAAAgAElEQVR4nOzdd1gU19vG8S8sCwj23kWsiQ0Re40lsfdYo0Zj7w0bCjZUFBEVsZfEmhh7751g7L0rAvZCF1jY3fcP4uoKWEjcgff3fK5rL92zM7P3DIfh2ZmzM2Z6vV6PEEIIIYQwOXOlAwghhBBC/K+SQkwIIYQQQiFSiAkhhBBCKEQKMSGEEEIIhUghJoQQQgihECnEhBBCCCEUIoWYEEIIIYRCpBATQgghhFCIFGJCCCGEEAqRQkwIIYQQQiFSiAkhhBBCKEQKMSGEEEIIhUghJoQQQgihECnEhBBCCCEUYqF0AJE69N98XekIKTK72bdKR0ixN5p4pSOkiMrcTOkIKaYyS5vZY+J1SkdIMWuLtPl5P16nVzpCigW9ilY6QooUy51e6Qgplk6d8nnT5m+IEEIIIcT/A1KICSGEEEIoRAoxIYQQQgiFSCEmhBBCCKEQKcSEEEIIIRQihZgQQgghhEKkEBNCCCGEUIgUYkIIIYQQCpFCTAghhBBCIXJl/f9IfHw8r169IiwsjDdv3hAfH49Op8PS0hJLS0syZMhAjhw5sLa2VjqqEEIIIVIJKcRS6NmzZ+zZs4czZ85w48YNnj17hk736duQZMyYkWLFivHNN99QvXp1qlSpIsWZEEII8T9KCrEvdOzYMZYsWcKFCxfQ6xPuRfb2388RFhbGuXPnOHfuHGvWrMHW1pYWLVrQs2dP8uTJ87ViCyGEECIVkjFinyk4OJiuXbvSt29fzp8/j06nMxRgZmZmX/R4S6/XExkZybp162jUqBFLly5VavWEEEIIoQA5IvYZLl68SP/+/QkJCUGv1xsKKr1eb3Q0zMzMDGtra2xtbVGpVKhUKuLi4tBoNERFRREfH59o2W+XExMTg5eXF1evXmXOnDmYm0uNLIQQQvx/J4XYJzx+/JiePXsSGRlpVIBlyZKFWrVq4ejoSJEiRShQoADZsmXDwiL5TRoREcGzZ88ICAjg6tWr+Pn5ceXKFeBdQbZ//37c3NyYMmWKqVZRCCGEEAox03/JAKf/QV26dOHMmTOGQilz5sw4OzvTokWLjxZdn+v+/fvMmjWLI0eOGN7DzMyMJUuWULNmzf9gDT5P/83XTfZe/6XZzb5VOkKKvdEkPkKaFqjMzT49USqlMkub2WPiP/1FoNTK2iJtHt2P16XdP41Br6KVjpAixXKnVzpCiqVTp3zetPkbYiJ+fn5GRVjevHnZsGEDbdq0+U+KMAB7e3sWLlxIz549DUWYXq9n0aJF/8nyv6a6RbPSpULeRO0/ls1Fk29yGJ53dMiNV/OShod3i5L4tv6WTNYJ27BKwUxMbVgMr2Yl6FYhL2oF/9Cv/nUlE1zGJGr3mDaVhQvmK5AoeevXrGKq2zjD880bN9CqcX3q16jIwN4/8zDggeE1v5PH6dCqCXWrOeE8pD8hIa+ViGzk1IljdGjdjO+qV2TogD48e/YUgBvXr/Fzp3bUqVqBrh3acP3qFYWTJhYcFEi/Xt2pWaUCrZs34tTJ4x9tTw02rFmF+3v95a2zf/tT06m0UdvNG9fo2aUdDWo40aNTW25cU/5nkNy29Z49k2oVy1GzSgVqVqlAvdpVFU76zrrVq5jsmnibz/ZwZ+kinyTn2b5lEy0b1//a0T4q6OF9OjWqyvOnjwH4bfEcOjWqyk9Na/BT0xr0aF3XMO3BXZsZ2KU5XZvXwnV4L4Ie3lcqdiLv78+XLVlE1YrlDY8qTuVwKF2CixfOK5xSCrGP2r17N5AwqN7CwoK5c+diZ2f3Vd5r5MiR1K1b1zDm7Pz58zx79uyrvNe/ZWFuRtNvc9C6TC6jdmsLczqWz8N3RbMZta+/+JTh228aHteeRnLg9kvCYuLJn8mKVmVy4esXyNg9d7C1UvFDyeymXB0ANBoNC+Z7M2f2TKP2iIgIpkxyZf261SbPlByNRsMS33ks8J5taLt4/hwrlvgyd+Ey9h8/jYNjRWZMdgXg1csXuI1zZpSLG3uOnCJr9uzM+2A9Te1RcBDjnIfTu/8gDhz1o5xDeZyHDCAqKooRg/vRrmNnjvidpVXb9owbNVzRrB/S6XSMGDoQp0qVOeZ3BufRLox1HkZkZGSS7W/eRCmaV6PRsNR3Hr5zZyd6LSoyEo+pbkZjXd9ERTF6SH/atO/M/hNnaNG2Ha5jRpgyciLJbfM3b6K4ffsm7jM8OeF/jhP+5zh07C9Fs0LCNl+8YB4+3p5G7ZEREcyY6sbGDWuTnO/pk8fMnzPLFBGTpdXG4ztrInFxGkNbwL07DHFxZ83Ok6zZeZIVmw8DcOvaJdav9GXUZC9WbjlCeaeqzHJVtq9A0vvznr378teZC4ZH23YdaPBDQxzKOyqYNIEUYh9x6dIlIGH8Vr169ShTpsxXfb/hw43/4Lx9/9SmS4W8FMhkzakHIUbtA6oXxMLcjAuPwpOdt0L+jOTOYMW2a88BcMqfiXPB4TwOjyU2XseO6y+obpf5q+ZPiqvLGG7euEHrNj8atQ/s1wuNRkO9+t+bPFNyprqN4/bNmzRv1dbQ5uBYgT+27aFgITvCwkKJjAgnY+aE7XjsyCHKOVTA0akSVlZW9B80nMMH9hIVGanUKvDXqZOULedA3frfY6FW0+2X3gQFPmT96lXYFS5C42YtMDMzo0Xrtkz39P6sa/SZyuVLF4mNjaVHzz6Ym5tTtXoNlq5cw907t5NsV6mUHYrrPnEcd27dpNl7/eWteV4e1KpTz6jt5LEjFCpsT6OmCT+DZi3bMmXmHEV/Bsltc5XKgju3blGsREnFsiVlius4bt+6QYsPtvmwQX3RaOKoU7dBonn0ej3ukybQtEUrU8VM0pb1KylZ2sGo7eH929jZF0807euXz2n+YxcKFi6KSqWiYcv2PHkUSERYqKniJim5/flbly5eYPfOHUxwnWziZEmTQuwjHj16ZPh/7dq1v/r7FS1alLx5353qe/r06Vd/z5TYdOUZC/8KIjxWa9S+9HQwq889TnY8i7kZtCydk01XnvJ2+EWuDFY8i4g1TPM8IpZM1mps1KbtmiNGjWG+72KyZc9h1O45Zx5T3GdgY2tr0jwfM3j4aDzn+ZI1m/GRQxsbW04dP0rT+rXYs3M7vfoOBOBhwAMKFS5smC5T5szY2NoSHBRo0tzv0+m0WKV7dyFjMzMzzMzN2bNrB/ny58dl9Ai+r1ONvr90xcrSMlV9i/j2rRsUti+Cx7TJNKhTnc7tWxP95k2y7VZWVormHTRsNDPnJu4vf508zqOgQNq072TUfuf2TfLmK4Db2JE0qVudgb26YWlppejPILltGxEeRlhYKF6zZlC/TjV+/qk9Vy5fVCznW0NGjGb2vIVkzW68zafP8sZ18rQk9yebNm4gW/bs1Kj9naliJhJw7zZ+Rw/QoXt/Q1vIqxdEhIexaqEXPdrUY9zAbty+nnCqumrtBrRo380w7fnTJ8mSLTsZMpn+w/T7ktufv+Xl6UG/AYPImCmTiZMlLfXs3VIhjUZjuO5XtmzZPjH1fyNr1qyG/8fExJjkPb9UeEzSg8yTa3/LMV9GojRarj97d6rGysIMjfbdaZG3/7c08QDfHDlyflG7krLnSHrnAlCxSjWO+p+nfecuOA8dQFychpjo6ER3b7C2tiYmRrkBvZWrVufsaX/8/U4SHxfHmlUriImJQafTsXfXDho2bsquA0epWes7nIcNIj4uTrGsHwoPD8fv5HGKFS/J7gNH6PrzL4wYOoCw0NCk2xU+OpBUfwkPD2Pu7BmMdZ1idG1DgIjwcPbv2UGDRk3Yuu8I1WvVYdwIZX8GyW3zhw8DqOBUiZ979GTPgaO0bN2WoYP6ERoa8umFfkXJ/Y4m1/4oOIgNa35l+KjE48lMJS4uDt9ZE+k9dBxWVu/2F+FhoZQqV4GWHX9m8Ya91GvckhnjhyQ66nXnxhUWz3Gne/+Rpo6eyMf22xcvnOdRcDAtWrUxYaKPk0LsI9KnT28YO/Hq1SuTvOf748IyZ1b2U8V/rXLBzPgFGP/yarR61Kp3fwgs//l/bBr+lpiSLC0tUast+blnXyIjI7h35w5W1tbExsQaTRcTE0M6GxuFUkIhu8K4TpnOnFkzaNawLpo4DYXti6DX6ynrUJ6atb9Drbbkp597EBLymocPAxTL+iG1Wk3uPHlp82N71GpLfmjUhBw5E8ZLJtV++eIFhRMn5j1zGm3adSJfgYKJXrNQW1CmXHlq1Er4GXTq2oOQ168JVPBnkNw2fxMVxcKlKylbrjxqtSUtW/9I9uw5uJQKt3lydDodU91cGDx8FBkzKneE5s/VS/m2nFOi05KF7IvhNmsRJb4ti1qtpl7jVmTOmp2b194NnTnnf5wpowfQre8wqtZOfNo1Ndm1YxuNmzbD0tJS6SgGUoh9RL58+Qz/P3HixFd/v0uXLvHixQvD85w5U9/RmJSyMDejeA4bLj6OMGp/FhFLrvTvfiFyZrAiLCae6DgpxL7E7h1bjb5BqdPp0MZrSZ8hA4XsChMYGGB4LTQkhMiICPIn8UfYVCIjI7ErbM/vW3ay59AJ2nfqQtDDAJq3akPke2PX9Ho9ep0uVY0RK1TIjqgo4/F1Oq2WPPnyJdmuS4VXCDp6+ADLF/nQsHYVunVIGJPUsHYVLl04R8FCdol+Bjq9Dp1euZ9Bctv8xo3r/PnHeqP2uLg4rCyVPR38JZ4/e8r1a1eYPGEs9WtWZuTgfjx7+oT6NSvz9Mljk+XwP3GQw3u20q1Fbbq1SBiKM7J3BzatXc6+7RuNpo2PjzcUMkf2bmfe9AkMGedOvcbKjm/7HCdPHE9VY35BCrGPcnRM+DaFXq/nwIEDhouvfg06nY4ZM2YYnltYWODk5PTV3s/U8meyJjw2PtHpy7PB4TgVyESBzNZYWZjT7NscnA0KUyhl2vVt6bIcPXSAC+fOEhenYfGCuRQrUYJ8+QtQq05dLp47y9/+fsTGxrLIx5satb7Dxka5cW+vX72k988/EfgwgOjoN/h4e+LoVIkmzVrw8MF99uzajlar5bcVS8meIydFiyUeKKyUylWqoTJXsXL5EnQ6Hbt3bufVq5fUqVMvyXanipWVjpzIYb/z7D3mz95j/vy6YQsAe4/5U658BWrXbUBgwH327d6BVqtlzaplZM+RkyJFlfsZJLfNK1aqzFwvTy6eP0d8fDwb1q5Go4mlfIW0s+/MnScvx/wvcPDEaQ6eOI3nvIXkyp2HgydOkztP4ssDfS1zV27mt+3H+XXbMX7ddgwAzyUbcHCqyuolc7lx5QJabTy7t6wnThPLN2UduXHlAst9PBg3fT4Vqpjuupcp9erlS168eMG3pUopHcWIXFn/I1q2bMnq1asxMzMjPj6e/v37s3TpUkqW/G+/oRMfH8+YMWO4cOGCYbxG9erVSZ8+7V7c7kNZbdRJjiELCo1h0+Vn9KyUn/RWKi4/iWD7P9+oFJ/PrrA9E6bMwGOqGyEhr3FwdMJ9pjdmZmbkyJmLyTM88Z41nefPn1GufAUmTJqmaN6ChewYOHQEA3r34E1UFJWqVGXSNA8yZcrMXN+lzJk1g5nuk7EvWgwPr3mJxjEpKZ2NDYuWrWK6+yRWrVhK7tx58PT2IX2GDEm226aiL3p8jly58zDbZwnzZs/Ac/pk7IsUY5rnXEV/Bslt8/KOTox2mcBE13G8fPGC4iVL4j1/keJfkPj/pEiJb+k1eAwLZk0k9PVL7IqUYMxUbywtrdi1eT0ajYYpo/obzTNn+UZy5MqjUOLkPX7ymEyZMqFWp57TkiBX1v+kfv36GV313tLSki5dutCpUyejU5cpderUKby8vLh+PeHK9nq9HpVKxaZNm/7zgu9j5Mr6pidX1jc9ubK+6cmV9U1Prqxvev/myvpSiH3CixcvaNu2Lc+fJxyleXv1e4BvvvkGR0dHSpQoQYECBciZMyeZMmXCxsYGCwsLVCoV8fHxhpt+h4SE8OzZMx48eMC1a9fw9/fn5cuXiZbbp08fhg4datL1lELM9KQQMz0pxExPCjHTk0LM9P5NISanJj8hR44crFixgl69evH48WPDkTGA69evc+PGjRQv++1y3r+ZeLdu3UxehAkhhBBCGWnzo4qJFSlShM2bN9OoUaNExRP8882uL3y8v4y3NxOfPn06Y8eOVWw9hRBCCGFaUoh9psyZMzNnzhx+//13GjZsiIWFRZJF1aceb72dt1ChQjg7O3PgwAFatUr9X/0VQgghxH9HTk1+oXLlyuHt7U1UVBT+/v6cP3+e27dvExgYyPPnz4mOTvrcvEqlIkuWLOTPnx97e3vKlClD5cqVsbe3N/EaCCGEECK1kEIshWxtbalXrx716hnfMDcmJobo6Gg0Gg06nQ4LCwusra3JkCGDQkmFEEIIkVpJIfYfs7a2TnRfPyGEEEKIpMgYMSGEEEIIhUghJoQQQgihECnEhBBCCCEUIoWYEEIIIYRCpBATQgghhFCIFGJCCCGEEAqRQkwIIYQQQiFSiAkhhBBCKEQKMSGEEEIIhUghJoQQQgihECnEhBBCCCEUYqbX6/VKhxDKi4lXOkHKZKk4UOkIKRZyxkfpCEKIZDwPj1U6QorlzGildIQUScvVSDp1yueVI2JCCCGEEAqRQkwIIYQQQiFSiAkhhBBCKEQKMSGEEEIIhUghJoQQQgihECnEhBBCCCEUIoWYEEIIIYRCpBATQgghhFCIFGJCCCGEEAqRQkwIIYQQQiFSiAkhhBBCKEQKMSGEEEIIhUghJoQQQgihECnEhBBCCCEUIoWYEEIIIYRCpBATQgghhFCIFGLiq/tt1UomjBujdAya1inDuT9deHZiFifXjqJqOXsAev1Yg1u7J/P8pCd7lwymWKGcieadPaotLn0aG7XVq1KS85tceH7SkwPLh2JfILtJ1uNjLl++RLs2Lans5MDPXToRFBiodKQvllr6y+c6uH8fLZo2pIpTeTq1a8OlixeUjvTZ0nJ2gHt371KxfBkePQpWOooRv+NH6NmpFS3qVaV/9w5cvZSwXW/fvM6AHh1pVrcy/bq149b1q4Z5TvudoHv7ZjT7rhITRg4kNOS1UvE/KrVu86Ss/nUlE1wS70s8pk1l4YL5CiRKmhRi4qvRaDT4zPNmzuyZSkehUN5sLJvclSHTfyd3rVH4rDnMRu8+VC9fhHG9G9Okrw+5ajpz4txdFrp2MsyXMb0181060L9jHaPlFcyThdUePRg5cxO5ajpz8txdFrp2NvFaGYuNjWX44AH83P0XTvr9TZWq1ZLcCaVWqam/fK5Hj4IZP24MU6Z54H/2Au06dsJ5xFClY32WtJwdID4+HtfxY9FoNEpHMfLkcTAek10YNNKFLQdO0aZDF1xHDeZNVBQTRg6kZduObD/kT9NW7Zg6fiQAr1+9ZJrraIaOdmXT3hNkyZadRfM8FV6TxFLrNv+QRqNhwfzE+5KIiAimTHJl/brVCiVLmhRi4quZMG4MN2/eoHXbH5WOQoE8WVi5xY+T5+6i1+vZsOcsAG9iNJRuPpG7gc/JltmWzBnS8TosyjDf1vn9sLK0YOuhi0bL69C4EtsPX+Lw6Zvo9Xo8lu9jxMyNJl2nD53525+MmTLTuGkz1JaW9OrTj7t37/Dg/j1Fc32u1NRfPle+fPk5fOwkZcuWIyIigtCQEDJnyqx0rM+SlrMDLF+6mPKOFZSOkcjzp09p3Lw15RydMDc3p94PTQDYsnEtBe0K06Bxc8zMzGjUvDUTpnmh0+k4dewQZco5Us6xIpZWVvTsP5Tjh/YRFRWp8NoYS63b/EOuLmO4eeMGrdsY70sG9uuFRqOhXv3vFUqWNCnExFczcvQYfHwXkz17DqWjcPLcXcbO2WJ4XqmMHTbWau4GviAqWkOjmqV5eHAanZtVZvLCXYbpOjkvp7fbGiKiYoyWV65EPl6GRLLNpz9Bh2ew3rMnIWFvTLY+SXlw/wGFC9sbnqtUKgoUKMC9e2mjEEtN/eVL2Njacuf2LWpVq4TPPG+GjRyldKTPllaz37p5k3179zBwcOo7glfO0Yk+g0canl+/eonYmBjCQ0PJnTc/7hNG0aZhLUb0746lpSXm5uYEPnxAgUJ2hnkyZspMOhtbHgennqEFqXmbf2jEqDHM911Mtg/2JZ5z5jHFfQY2trYKJUuaFGLiq8mRI/FYq9TAvkB21nv2ZLLvLkOBdcj/JpkrD2P+2sNsmtsXtYUKgKcvw5NcRuaMNnRvXQ33xbsp2nA8D4JfssK9m8nWISnR0W+wTmdt1GZtnY6YmGiFEn2Z1NpfPoddYXv+Pn+Z8W6TGDF0EK9fp87xPUlJa9njNBpcx49lgtskrK2tPz2Dgh4FBTJ57Ah+7j2AN2+iOLRvF3W/b8yGHYeoUqM2bqOHEh8fR0x0NFbW6YzmtbK2JjYmJpklm1Za2uaQ/L4kte5jpBAT/1OcShXiyKoRrNjsh/fqQ4Z2TVw8cfFaZizdR6b06ShdLO9Hl6OJ07L9yCX+vhJArCaeKQt3UcupGOltrL72KiTL2jpdoh13TEw0Njap69Pf/0dqtRq1Wk3LVm3Ikzcf58+eUTrSZ0tr2RcvXIBTxUqp/hTZzWtXGNqnC41btObHzj+jVqspVcaBqjXroFarade5O6Ehrwl6GIC1dTo0sca/u7ExMVins1EovbG0ss3TKinExP+M+lW/YefCgbj5bMd98W4AOjerzJJJPxmmMTc3w8LCnNCIjx9FuvvwOZnSv/sEq1KZG+ZXSmF7ex4GBBiea7VaggIDsbMrrFim/+/8//KjT8/uRm1xcRoyZMyoUKLPl1azHziwj62b/6RGFSdqVHEC4MdWzdm9c4fCyd4543+K0UP60L3vYLr27A9A/gKFjMZ86fV69Hoder2eAoXsCA56aHgtLDSEyMgI8uUvaPLsSUkL2zwtk0JM/E8oUjAH62b9Qt9Ja1m15S9D+5krAbSs50B1xyKoLVRMGtCMy7eCeRD88qPL27D7DD9UL0WdSsVRW6iY0K8Jh/xvEh6p3KmEipUq8+rVK3Zs20qcRsPSxQvJX6Ag9kWKKJbp/7sSJUty/do19uzeRXx8POvXrkGr1VLOobzS0T4prWbftnMvp06f46T/WU76J3zpZuOW7TRu2kzhZAmCgx4yxWUEI10m0bh5G0N7je8aEPTwAQf37kSr1bLht+Vky56DwkWKUa3md1y+cI5zf/+FJjaWFYvmUbVGHdLZpI4jYql9m6d1UoiJ/wk929TANp0lSyd34cWp2YZHjizp+WX8b/hO6ETAwWkUt8tJJ+fln1zeueuBdBu3Ek/ntjw66kHhfNnp7arsV6Ktra3xWbiY9WtXU6t6Zfz/8mPWbG9FM/1/lyVLVub6+LJy+VLq1KjCoYP7WbBwSZoYR5OWs6dmu7ZsJCY6mplTxtOsbmXD49mTR0yfs4gtf6yl1ffV8T91jIkzvDEzMyN7zly4TJmJ7xwPfmxch5cvnjNsjKvSqyJMxEyv1+uVDiGUFxOvdIKUyVJxoNIRUizkjI/SEYQQyXgeHqt0hBTLmVG5sar/RlquRtKpUz6vHBETQgghhFCIFGJCCCGEEAqRQkwIIYQQQiFSiAkhhBBCKEQKMSGEEEIIhUghJoQQQgihECnEhBBCCCEUIoWYEEIIIYRCpBATQgghhFCIFGJCCCGEEAqRQkwIIYQQQiFSiAkhhBBCKEQKMSGEEEIIhUghJoQQQgihECnEhBBCCCEUIoWYEEIIIYRCpBATQgghhFCIFGJCCCGEEAox0+v1eqVDCOUdvvlK6QgpUrFwFqUjpNibWK3SEVLE3MxM6Qgppidt7u50OqUTpJxKlTb7S2RMvNIRUiyt7lvyZrFWOkKKZbFRpXheOSImhBBCCKEQKcSEEEIIIRQihZgQQgghhEKkEBNCCCGEUIgUYkIIIYQQCpFCTAghhBBCIVKICSGEEEIoRAoxIYQQQgiFSCEmhBBCCKEQKcSEEEIIIRRioXQAkUCj0fDy5UvD87x58yqYRgghhBCmIIXYFzh69Ch79uzh3LlzvHz5EjMzM3LmzImjoyPff/89derUwSyF9+E7d+4cPXr0AMDMzIzr16//l9GFEEIIkQpJIfYZgoKCGDNmDOfPnwfg/fukP3z4kMDAQLZu3YqdnR3jxo2jZs2aKXofuf+6EEII8b9Fxoh9wtWrV2nfvj3nz583FEpmZmZGD71ej16v58GDB/Tu3ZupU6ei1WoVTi6EEEKI1E4KsY94/fo1/fv35/Xr1wBGRdf7j7evvX197dq19OzZkzdv3igZXwghhBCpnJya/Ah3d3eeP39uNO6rSZMmNGvWjIIFCxIdHc3FixfZtGkT169fNyrG/P396d69O8uXLyd9+vQKroUQQgghUis5IpaMoKAg9u7dayisrK2tWbRoEbNnz6ZOnTrY29tTqlQpOnfuzObNm5k9ezaZM2cG3h05u3z5Mr179yYmJkbhtfl6XjwJxnvCIIa2r4dbvw5cPfeX0etPAh8wqG0dXj17Ymg773eEif07MLR9PWaM6MH9m1dMHTuR4KBA+vXsTs3KFWjdrBGnThw3en3Nb6uYOH6sQumS9vvaX5k20cXw/Oih/XRs1YhGdaowpG93ggIfGl7bs2MrbZvW54falXB3G0uswn1yw5pVuE8cZ3g+ftRQ6lZ3pEFNJxrUdKLHTz8mmmfn1k20bdbAlDET2bDmV9zf2+a3blyjV9f2fF+zIj06/8iNa+/68pY/N9C2aQO+r1WJwX26ExjwQInIBr+v/ZXpk95l37tzGx1bNaRJ3apMHj+KyMgIo+n1ej0uIwezZ+dWU0c1smHNKtzdPugr1RxpUMOJBjWc6NHZuK/o9XrGDh/E7u1bTB3V4K8TR+jduRWtG1RjUI+OXLt8AYADu7fT/ccmtPmhBjMmjiEqiW0+acxQ9u/apkRsg6CA+7T/oQrPnz42ahOmxsAAACAASURBVN++cQ3zPdyM2g7s3Ey/zs35qVktxg/tSVDAfVNGTWTd6lVMdn3XX/xOHKNdy8bUqVqBEUP6E/LPGa73nTn9F1UdS5kyphEpxJKxe/dutFoter0eMzMzJk6cSO3atZOdvkmTJmzZsoXixYsb5tHr9Vy4cIHBgwf/vxwzptPpWDR9DCXKVMBr/QHa9xrKspkTiIlOOCWr1cbz2zx34uM0hnlePXvCb3On0m3IBLx/P0StRq1ZNnOCUqsAJKzHiCEDcapUmWN/ncF5jAtjnYfx5k0UGo2GhT5zmec1S9GM79NoNCxbOJ+F82Yb2kJev2LmVDemzvRm56FTfFOqLLPcE3aYd27dxHfebDy8fdmy+whhYaGsXrlUsexLF87D973sAHfv3GLR8rUcOHGWAyfOsmLNRqPXnz59jM9cT1NGNZLUNn8TFcWooQNo064T+47/Tcs27XAbOxKASxfOsWrpQrwWLGXvUX8cHJ3wmOqW3OK/evbli+azaP677Fcuncfb050xru5s3XccW1tbpr9XYL56+YLxo4Zw8vhhJSID//QV33n4zv2gr9y+xaIVazlw8iwHTp5lxdp3feXlixeMGzmEE8eUy/30cTCzpoxn4EgX/tx3klbtf2Li6CFcvnAWX6/pjHCZwoadR7CxscVz6rt936uXL5gybhh/nTiiWHZI2G/7zJxI3Hv77TiNhnUrfPltsbfRtDevXmLtigWMmerFr1uPUL5SNWa4Djd1ZCChvyxeMA8f73f7iVcvXzBhnDOjx09k31E/smXLzlwvD6P5oiIjmT7FTdEvy0khlowzZ84ACUe3SpYsSYsWLT45T+7cuVm3bh3ly5c3KsZOnDjB+PHjv3Zkk3tw6ypxsbE0/LEb5ubmfOtYhRHTfVGpVADs+3M1Rb4tazRPtlx5mLFqB4VLlCI6KpLI8DBsM2ZSIr7B5UsXiY2NpUevPpibm1O1eg2WrlqDSmXBxPFjuXXzBi3bJD5Co5Tpk1y4c/sGTVu2MbQ9e/oEjSaW+H8KfpXKHCsrawAO7t9N3QYNKVK0ODa2tvzSZyA7t21SJLv7xHHcuXWTZi3bGtqio9/w7OkT7OyLJDmPXq9nxmRXmjRvZaqYiUyb6MLtWzdo9t42P3n8CHaF7WnYtAVmZmY0bdmGKR5e6HQ6ypWvwPoteyhYyI6wsFAiIyPImCmzItmnT3bhzq0bNG3xXvZjR6jboBHlyldArVbzS99B+J08SkR4GAD9enQiX/4ClC7roEhmeK+vtPr8vtLn547ky1+AMuWUy/382VMaNW9N2fJOmJubU/eHJgCsX7WU2vUbUtrBEbVaTddeAzh96hgR4eEADOvdhTz5CvBtGeWyA2xat5KSH2SY7+HGg7s3qd/E+Hfw9cvntGjXhUKFi6JSqWjcsj1PggOJCAs1ZWQApriO4/atG7R4r78cPXwIh/IVqOBUCSsrKwYMHs6h/XuJiow0TOPtOYPa39Uzed73SSGWjAcP3p1G+P777z97PltbW5YtW4aDg4NRMbZ161YWLFjwNaIqJuj+HXIXKMyGxZ44d23MtGE/ExsTjdrSiuAHdzh78iDNO/dJNJ91OhseBdxjxE8N2bF2Ca1/HqBA+ndu37pBYfsieLhPpkHt6nRu15roN2+wsrJiuPNovH0WkS1bdkUzvm/AsFF4zPEl63uZipf8lvIVKtGrSzvqV3dk17bNDBuVcIQjMOABBe0KG6YtUKgwr1+9JDwszOTZBw0fzUxv4+z37tzGOl06nIf0pWn9Ggzp/wsP3zu9seXPDWTLlp3qNeuYPO9bA4ePSpT7zu2b5MmXH7exI2larwaDev+MpaUV5uYJu1UbGxtOnThKi+9rs2fndn7pq0w/Hzh0FDM+6C86nQ5ra2vDc3NzFTqdjiePHwGwcMU6+g9xxsJCuWHEg4aNZubcZPrK4L40rVeDIf1+4eGDd31l8ar1DBzmjMpCrURkAMqWd6LXwBGG5zeuXiY2JgY7+6JYvbfNVaqEbf70ScI2n7NkNb0GjkCl4DZ/cO82p47sp1OP/kbtP/cfjsu0eWTOks2ovVqdBrTq8LPh+Tn/k2TJlp0MCnzoGDJiNLPnLSRr9nf95WHAfQq9t+/LlDkzNra2BAUFAgmnLYODAvmxQ2eT532fFGLJCA19V9EXKZL0p6/k2NrasmTJEuzt7YF3Y8Z8fHzYvXv3f5pTSW+iwrl27i/y2xVj+vJtNGjVmUXTRhMe+prf5rnTuf9oLK2skpw3d/5CzN94lI79nFkyYxwRYSEmTv9OeHg4fiePU6xESXYfPELX7r8wYsgAwsJCyZ4jp2K5kpM9e45EbbGxMeTJm49FK9ex99jfNGjUlIkuzuj1emKio43+6L79f0xMtMkyv5VU9ujoaEqVLsdQ53Fs2nWIsuXKM3r4QOLj43gUHMQf635jiLOy4/OSyh0RHs6BPTv5vlFTtuw9QrWadRg3cjDx8XGGaSpWrsYhv/O069SFMcMGEhcXl2g5X1u2JLJXrV6LA3t2cvP6VWJjY1m5dAEqlQqNJjbZeUwte45k+kqZcgwdNY5Nu9/rK/9s16TmUdLj4ECmugyna68BVK5Ri8P7dnH7xjU0sbGsXr4Qc5WKuFSyzePi4vDxmEjf4S6Go+lvZc326Wy3b1xh0Rx3fhng/LUiflRy/cXaOp1Rm7W1NTEx0YSHhzHHcwYuE6dCCi/E/l+RQiwZGs278+Pv/xH7XBkzZmTZsmXk+KdzvC3Gxo4dy6VLl/6znEqysFCTNWcuajZsiYVaTcVaDcicNQcLJo+keOnyFPmmbLLzqiwsUFlYUK1+U7LmzM2daxdNmNyY2kJN7jx5afNje9RqS35o1IQcOXNx+eIFxTJ9qS0bN4CZGd+WLouVlRV9Bg4j4P497t+9jZW1NbExsYZp3355JJ2NjVJxjVSsXBXPeYsobF8UKysrevQeQMirVwQ8uM/0yeMZONSZjAqfvk6KWq2mdLnyVK9VB7VaTaeu3Ql5/ZrAgADDNJaWlqjVarr90ofIiAju372tXOD3OFasTI++g3AbO4Kf2jbBvmhx0qWzwdY2g9LRPipRX+nzT19ReIB4Um5dv8KwPl1p2LwNbTt1w6FCZbr2GoD7hJH80rE5hYsUI106G2xsU8e36jf+toTSDhX4pvSXnxo9+9dxJo8aQLe+w6hWR9kv1LzP2tqa2FjjLybFxMRgY2PDbA932rbvRP4CBRVK945cviIZmTJlMtz7MSQkZUdr8ubNy4IFC/jpp5/QaDSYmZkRGxtL//792bhxY5q/n2TOvAWI+eBaaTqdjpjIcE4d3InfoV2G9qlDutCx3ygyZMrC/s1rGDJ5ruG1+Lh4bBT8A1DIzo6oqEijNp1Oi06Xdu508OL5U8NRAQBzc3PMVeaoLCwoZFeYoMAAw2tBDx+QNWs2MmTIqEDSxE6dOEr0mzfU/6ExAFqtFq1WS2REBNevXWHqP9+Y02rjiYmJoWGdKqzasJncuZX9/SlQ0M7oW5J6vR6dXodOr2PPzm2cP/s3LhPdgYTfC61WS/oMqaPQCQ0NoWLlarRq2wGAoIcBxMXFUaBQIYWTfdyp40eJjk7cVywtkz7yrpSzp08xbcIoeg0cQaPmrQEICw2hQqWqNGvdHoDgwADi4+LIXzB1bPO/jh8i5PVLDu15943NYT3b02fYOGrVa5TsfIf2bGOl72yGurjjVCVld5X5WgoVtue030nD89CQECIjIshfoCBHDx3g1PFjLF3og06vA6B+zcp4zvPFoXwFk+aUI2LJyP7eeeZ/cwSrTJkyuLu7G1349dWrV/Tu3ZvwfwZpplXfOFTC3NycvX/+hk6n4/TRvYSHvmK896/MWX8Ar3X78Vq3H4Dxc1dTqfb3FLAvRuC9m5w5fgCtNp6ju/5Ep4vHvmQZxdajcpVqqMxVrFy2BJ1Ox+6d23n18iVOlSorlulLVapSnUMH9nDl0gXi4+P5dfkicufJS4GCdtRt0JCD+3Zz6+Z13kRFsXyxD/UbNlE6skF8XBxzZ88g4MG9f7755I190WI4ODpx+NR59h71Z+9Rfzzm+JIrdx72HvVXvAgDqF23PoEBD9i3ewdarZY1q5aRPXtOihQtzrely3Ds8AEunj9LXFwcS33nUbR4CfLmK6B0bADu3b7FiIG9eP3qJRER4fjO86Rh0xZYKDi26nPEx8cx1/O9vuKT0FcKFrJTOprBo6CHuLuMZPjYSYYiDOD+3duMHdqHkNeviIwIZ6mPFw0aN08123z+r5tZs+O44QEwZ9nvHy3Crl8+z7L5HkyYMT/VFWEAterU5cK5s5z29yM2NpaFPt7UqP0dNja2HPO/wMETpzl44jRr/ki4RMvBE6dNXoSBHBFLVtmyZbl58yZ6vZ5du3YxcuRIbFJ4Kqdp06bcuXOHxYsXGy4Oe+/ePfr168eKFSuwSmYcVWpnZZ2OoVN9WL9oFvs2rSZrjlz0GTsDaxvbZOdJnzEz/Vxm8vsSL9YvmkUB++IMmDA72bFkppDOxoZFy1cxfeokVq1YSu7cefD09sHWNvn1SG2q1qhNv0HDcXcbS3h4ON+UKs20WfNQqVSU+KYUA4c54zZmOGGhoVSvVYde/QYrHdmgdt0GPAoOYvjA3kSEh1G2fAWmzPBSOtYn5cqdB8/5i5nv5cHsGVOwL1IMd8+5mJmZUcjOnvGTpzNz6kRCQ19TrrwTU2bOMbo4tJIqVKpCo2Yt6dG5Ndp4LbXrfc+AoaOUjvVJhr4y4L2+4pG6+srubX8SExONp/t4PN3ffVt+qqcv3zduQb+ubdFqtdT4rj69B41UMOm/t3PzeuI0GiY5Gw/un7vyT3LkyqNQqndy5szFVI/ZzJk5jefPn+FQvgKuk6crHSsRM73caTpJe/bsYdiwYYYdZ+vWrXF3d/9Xy+zXrx9HjhwxjBczMzOjUqVKLFiwgCtXrtC9e3cg4ajZjRs3/vU6fInDN1+Z9P3+KxULZ1E6Qoq9iU2b15YzTyXFREroSZu7O51O6QQpp1Klzf4SGROvdIQUS6v7lrxZvnw8dmqRxUaV4nnl1GQyGjRoYBhor9fr2bx5M2PHjiUyMvITcybPy8uLUqVKGV3W4u+//6Zjx47cunXrv4ouhBBCiDRCjoh9xB9//IGrq6vREawMGTLQoEEDHBwcKFy4ME5OTl+0zNevX9OxY0cCAxOuY/L+2LG3z+WI2OeTI2KmJ0fETE+OiJmeHBEzPTkiJhJp164dDRo0MDqCFR4ezubNm3F1dWXZsmVfvMysWbPy66+/UrBgQcNyAUVvryCEEEIIZUgh9gleXl40bNjQUDS9LcgAcuZM2cU+394K6f2r76eWQbxCCCGEMB0pxD5BrVbj7e3N7NmzyZs3r9GRq5QWYgDZsmVj7dq1hgH6ckRMCCGE+N8jY8S+0NmzZzl27Bh37tyhdevWX3QfyuRcvnyZefPmcfJkwoXnZIzY55MxYqYnY8RMT8aImZ6METO9/9UxYnIdsS/k5OT0xQP0P6Vs2bIsW7aMe/fucfz4cYKDg//T5QshhBAidZJCLBUpUqTIF99gXAghhBBpl4wRE0IIIYRQiBRiQgghhBAKkUJMCCGEEEIhUogJIYQQQihECjEhhBBCCIVIISaEEEIIoRApxIQQQgghFCKFmBBCCCGEQqQQE0IIIYRQiBRiQgghhBAKkVscCQBs1WmzK6TlW9arzNPmzZDT8CZHq02b6bW6tJkbQG2R8pshKykuPg3faT2NSsv7839DjogJIYQQQihECjEhhBBCCIVIISaEEEIIoRApxIQQQgghFCKFmBBCCCGEQqQQE0IIIYRQiBRiQgghhBAKkUJMCCGEEEIhUogJIYQQQihECjEhhBBCCIVIISaEEEIIoRApxIQQQgghFCKFmBBCCCGEQqQQE0IIIYRQiBRiQgghhBAKkUJMCCGEEEIhUogJIYQQQihECjHxr61fNpdfWtSgV+va9Gpdm/4dGgAw330Mv7SsaWh3HdzVMM/WdcsZ2rUpfdvVw2vicF6/fKZUfINzZ/+mY9sW1KnmRNdOP3L18iWj1z1nuLNkoY9C6RLbsGYVU93GJWo/+7c/NZxKG7X5nTxOh9ZNqFfdiVFD+xMS8tpUMZO0Yc0q3JPJXvOD7Ht2bKVd84Y0rF2FieOciYyIMFVMg5PHDvNz+5Y0/q4Kvbu258qlCwD4nzpOl7bNaFirEmOHDyQ0ie167m9/vqtc1tSRDU4dP0KPjq1oVrcq/X7uwNV/sr91/ow/9auWM2rbvul3Orb8gaZ1qzC8/y8EPXxgyshG1n/Qz7dt3kjb5g1pUKsy/Xt248H9uwDMdJ9EvepOhkedqo5UcyzFi+em37ecOnaQvl1a8WPDagzr3ZmbVxP2Jct9vWjdoDI/NqzGjw2r0an5d4Z5Du3dTq+OzejQpCazJo8lKtL0/fytoID7tP+hCs+fPgbg9o0rjOjdkY6Nq+EypAdPHwUZpr126RzDerajc9OaOPf7ids3rigVG0joL1MS9ZcfqF+rEv16djX0F4Bd27fQsnFd6tVwYtKEMcTExCgRWQox8e8F3r9Dv9FTWLr5GEs3H8N3w4GE9gd3mDB7maF98rzfAPA7spe/ju5l/KylzF+7h2w5crNszlQlVwGtVsvoEUMYOmIUR06doVmLVowbPRyAyIgIpk124/f1axTN+JZGo2GJ7zwWzJ2d6LWoyEg8prqh1+sNba9evmDiOGdGjXNj9+FTZM2WnfleM00Z2UCj0bDUdx6+n5n98sXzeM10x2WSOzsOHsc2ffokC7iv6cmjYKZPdGHoaBd2HvLjx05dcBkxiOfPnjJl/GiGj3Vl24ETZM2WnQXesxKtk+e0iUbrZNLsj4PxmOTCEGcXth08RZsOXRjvPJg3UVEJ+aIi8Zo+6YNtfo7fli9i5rzFbD/oR7nyFfCcNtHk2Q393PtdX7ly6QKLF8zDw2s+e4/4UaVaDcYMHwzAKBc3Dp06a3hUq16Tzl27kyNnLpPmfvbkMd7TXRk2djIb9/rRpGU7PCaOBiDg7m2cJ0xn414/Nu71Y932IwBcv3KRxd4eDB0zidVbD2Nja8uc6a4mzf2WVhuPz8yJxMVpANBoYvFwHUGL9l35bdsxylWowvyZbv9Mq2WmmzPd+g5nzY7j1G3YnNmTxyiSW6PRsNh3Hj7enoa2y5cusHjBXDy8fNh35C+qVKvB6OGDALh96wY+3p54zl3E9n3HCA8L5dcVSxTJLoWY+NcCH9yhYOHiRm2xMdG8ev6UfAULJ5o+KjKcpu26kT1XHtRqS+o2bs3dm8p+iooIDycsNJT4+Hj0ej0qcxVWVtYADBnYB02chu/qNVA041vuE8dx59ZNmrVqm+i1eV4e1KpTz6jt+JFDlCtfAUenSlhZWdFv0HAOH9hLVGSkqSIbfGn2k8cOU//7RpQrXwG12pKe/QZx6sRRwsPDTBWZZ8+e0KRlGxwcK2Jubk6Dhk0B2LdrO2UcHClfoSJWVlb0HjCUowf3GW3XBXNmUvODdTKl50+f0rhFa8o5OmFubk79hk0ACA56CICv9yyq1zbOV9ahAqv/3EWBgnaEh4USGRlBxkyZTZ59qts4bt+8SfP3+sqL58/p1OVnihQthkqlok37TgQFPiQsNNRo3gP7dhPw4D59BgwxdWxy5cnLb5sPUuLbMkRFRhAeFkqGTJkAeHDvNoWLFk80z+mTR6lZ9wdKlXNErVbz0y/9OeN3nMiIcFPHZ9O6lZQs42B4fvXCWdJnyESteo1Qq9W06fwLgQ/uERz4gKjIcCLCQ9H+s980NzfH0srK5JnhbX+58UF/eUanLt0N/aVt+86G/nJg727qfd+IosWKY2trS6++g9ix9U9Fslso8q7i/43Q1y+JjAhj7dI53L1+mZx58tO5zzD0ej1W1umY7TqUoAd3KWBfjK79nMlbwI4GzdoZLePimVPktyui0BokyJwlCy1at2XowL6oVCqsrKzwXbISAA9Pb7LnyMnECWMVzfjWoGGjyZ4jB8sXL+DJ40eGdr+TxwkOCsRlojsb1v5qaH8Y8IBCdu8K4kyZM2NjY0twUCAlvvlWsexP38v+18njPAoKZNxEd35/L7tWq8PKOp3hucrcHJ1Ox5NHj8iYMZNJMjs4VsTBsaLh+bUrl4iJjeFRcCAFP9iu6WxseRQcSPGS3+J/6jiPggMZ4zqVP9b9ZpKsHyrn6EQ5RyfD8+tXLxEbG0O+AgU57XeCx8GBjJowhT/XG+dLZ2PDXyePMcF5MLbp0+Plu9LU0Rk8PKGvLFu0gKdPEvpK3QY/GE3jd/IY2bPnIFPmd4VifHw8vnO9GO3ihoVabdLMb6WzsSHg3h2G9OyAuUqF6/R5vH71gojwMJb5eHLj6iXy5CtAz4EjKVmqLDqdFitra8P85uYqdDodT588omiGjCbL/eDebU4d2c/MhavZsTHhDMCjwAfkK2hnmEalUpE7b36CA+5TpVY96jduhfu4wZibq7C0smKS5yKT5X3fu/7iw5MnCadU6zVoaDTN+/3lYcB9KlauZnitoJ0dr16+JCwslEwm/uAhR8TEvxIRFso3ZRxp+mNX5q7eRe0fmuM1cTivnj+jSMnSdOk3kjm/7aD4t+WYM2kE8fHxRvOf9z/O9g0r6NBjsEJrkECr1WJrm575C5dx3P88fQcOYYzzUGKio8meI6ei2T6UPUeORG3h4WHMmz2Dsa5TMDMzM3otOjraaCcPYG1tTUxM9FfNmZTkss9NJnu1GrXYv2cHN69fJTY2lhWLfVGpVGg0saaKbCQ4KBC3McPp0Wcg5uYqrJPcrjFEhIfh4zWTUROmwAfrpJRHQYFMHDuC7r0HoNPqWDBnJs4ukzEj6XwVKlVlz/Gz/5zOHERcXJxJ8ybVV9537cplZrpPYqiz8Qekwwf2kilzZqpUr/k1431S/kJ2bDrgz4DhLkx3HcmT4CBKOzjRtlN3Vm3aT4MmLZk8dgjhYaE4Va3J0QO7uXPzGprYWNatXIS5SkWcCft5XFwcPh4T6TvcxXA2ACAmJsboOYCVlTWxsTFotVrS2dri6rGA9btP0alHf2ZNGkVsKtm3vO/alUt4uE809Jfo6Gij31/rfz7wxSowTkwKMfGvFChclDHTfSn2TVks1GrqNGxJ5izZsbSyYuRkb/IVtMfS0opWnXsRHvqax0HvBv0e2buVxZ5uDBw7jeKlyn3kXb6+wwf38zDgPlWqVcfS0pKOnbtiaWnF6dN/KZrrc82ZOY027TqRv0DBRK9ZW1sTG2u8Q4+JiSGdjY2p4n2U9z/Z8yWRvUKlKvTsO4gJo4fTsVVj7IsWI106G2zTZzB5zhvXrjCwZxeatGhDh59+/uh2nes5nVbtOpIvfwGT50zKzWtXGNy7C02at6Zd55+ZP3s6Ldt2IO9H8llaWiacJuvem6iICB7cu2PCxB936vhRhg7oxaBhzomOku3dtYNmLVorlOwdCws1FhZq6jduQc5ceQgNfY37nMWULF0OtVrND01bkzVrdm5cvUg5x0p07tGfGW6j6PNTS+zsi5EuXTpsbE3Xzzf+toTSDhX4prSDUbuVtTWaD/p5bGwM1uls8D9xiEeBAThUrIra0pKmbTphaWnFpXN/myz35zh5/ChDBvRi8LBRhqNk1tbpjH5/334wVWK/KIWY+FduX7vEoV3G59Xj4xM+Ofsf229o0+m0aLVa1GpLALauW8am3xYxyt2HchWrmy5wMp4/e5boE7+FhQUWFmnj7P3RwwdYtsiHH2pXoWuHVgD8ULsKly6co5BdYYICAwzThoaEEBkZkWTRpoSjhw+wfJEPDWtXods/2Rv+kz00JIRKVauxccd+Nu8+hEOFisTFxVGwYCGTZvz7r1OMHNibnv0G0713fwAK2hUm+P3tGpqwXfPlL8jxIwdZsXgBTepW45fObQBoUrcaly+eN2lugDP+pxg1uA89+g6mW6+E7CeOHmTVUl+a169Or58SxtQ0r1+dKxfPs2/XNjwmjzfMr9fp0GrjSa9A8ZuUndu2MGn8GCa6zzQaDwQQGxvLuTOnqV1XufGcF8/6M2F4X6O2+Pg4ggMD2L31j0TtaksrwkJDKF+xCst/38XKjXso7VCBuLj4JD+cfC1/HT/EoT3b+KlZLX5qVguAYT3bkzlrNh4HPzRMp9VqefIoiHwFCvHqxXPD/v4tVSrbb+7ctplJ40czyX2WUX/5cL8YGBBA1mzZyGDCU8FvSSEm/hULtZoNy+dz69pFtNp49m/7nTiNhpjoN6xZ7MWjwAfExWn4Y5UvBeyKkid/IfyO7GX/9t8ZP2sJRUqUUnoVAKhYuQqXLpznyKED6HQ6tm/dTFhYKOUcHJWO9lmO+J1n3zF/9h3z57cNWwDYd8yfcuUrULNOXS6eO8vf/n7ExsayeIE31Wt9h42NrcKpExz2O8/eY/7sPebPr/9k3/tP9rt3bjGsfy9ev3pJREQ4C7xn0ahZC5OO/QkOfIjb2OGMmjCZpi3bGNqr1/qOi+fPcfZ0wnZd5juX6jXrYGNjw/4TZ9l12I9dh/1YvnYTALsO+1HWxP0pOPAhk8aNYKTLJJq0eJd9z7EzbD94iu0HT7F0TcIHqe0HT1HGwZFvSpXlxNGDXL5wlri4OJYvmk+RYiXJky+/SbMn5eL5c3h5uDN7/iKq16yd6PW7t2+RNVv2T56m+poKFy3B3ds3OH5oL9r4eHZu3oBWq6V0WUdWLvLm2uULaOPj2f7nOjSaWEqXdSTg3m0mjOhHyOtXREZEsMLXi3oNm2FhYbp+Pv/XzazZcdzwAJiz7Hcq1/iOsJDXHNm/k7i4ODatXU7uvPnJX8ieMo6VuHnlIv4nDqPT6Ti0ZxsR4WGULK3sGY63Lp4/y2wPd7zmL07UX+p/34j9e3Zx68Z1oqKiWLpoPt//80Uc22CwwgAAIABJREFUU0s9ZatIk+yLf0u3AaNY6jWZ0NcvKWRfnOETvShQuCghr14wa/wgoiIjKFHKgYHjpgOwd8s6oqMimTCoi9Gylm4+psQqAFC8REkmT5vJQp+5THIdh32Rosz1WUz69OkVy/RfyZEzF5OnezLXczrPnz+jnEMFxk+apnSsz+JUqQqNm7WkW4fWaLXx1Kn3PYOGjzZphu1bNhITHc30SS5Mn+RiaJ/pvRA391nM9/LgxfNnlHVwZIybu0mzfcrOrQnZPaaMx2PKu6Nc0+f4UtahQpLzFLQrzBi3acyePomw0BDKOFTAbfrsROP3lPDH+tVoNLEM7d/TqH3tn9vJnScvT588Jnt25YowgEyZszB+mjdL5nrg6+VOkWLf4OYxn/wF7eg3dCxzZ7jx+tUL7IuWwHX6PCytrChXoTL1GzVncI92aLVaqtWuT88BIxRdj7esrKxxmT6XRXOmsXTuDAoXLc5IVw8AChcpzpBxU1m/whefmRMpUMie8dPnYWObOvabf6xfg0YTy5D+/8feXYdFlf0PHH/PAIKg4iqsiSB2InbX2l2rrrV2t6ICKhioKOba3brGrrV2oWLs2t1dmEgozADz+wMZnUVZRbwXft/P63nmeZybnzneOXzmnHPP7WSyfPWGreTNX4C+A4fiOXQAQUGvqVCxiip32QJoDGpNcCOSlBO3lJsOIDHly5I0uksSQhcZrXYICZKcK4zIqORZ5lHRybfUU6YwUzuEBHkZolM7hATTRyXP6yVTWqv/3iiJSmeT8OtcuiaFEEIIIVQiiZgQQgghhEokERNCCCGEUIkkYkIIIYQQKpFETAghhBBCJZKICSGEEEKoRBIxIYQQQgiVSCImhBBCCKESScSEEEIIIVQiiZgQQgghhEokERNCCCGEUIkkYkIIIYQQKpFETAghhBBCJZKICSGEEEKoRBIxIYQQQgiVSCImhBBCCKESScSEEEIIIVRirnYAANHR0Vy6dInTp0/z8OFD3rx5Q3BwMHq9nkWLFplsu2zZMmrUqEGmTJlUilYIIYQQInFoDAaDQa2TP3jwgCVLlrBp0ybevXtnss5gMKDRaLhy5YpxWVBQEKVLl0ar1VK9enX69euHs7Oz0mH/v/QiNFLtEBJEo1E7goTTkDyDj1avyvhmIeHJ8zpPZZUkfjMnSFR08rxezj4IUjuEBCuVPZ3aISRIhD5a7RASLKOtRYL3VaVrMioqCl9fX2rVqsWaNWt4+/YtBoPB5PUpjx8/BmJa0Hbv3k2jRo1Ys2aNkqELIYQQQiQaxX9mvXr1ih49enD+/HljwqX5RLPGp5KxR48eGbc3GAzodDpGjx7Nixcv6NOnz/cNXAghhBAikSnaIqbT6ejZsyfnzp0zdj3GJlUGgwEzMzNSpEjx2f1jW8QAk31nz57N1q1blfgIQgghhBCJRtFEbMyYMZw9e9YkibK3t6dfv35s2rSJc+fOUalSpc92TbZu3ZrJkyfj6Oho0ppmMBgYN24cQUHJt09fCCGEEP97FEvErl27xsaNG42JE0Dt2rXZuXMnPXr0IG/evJiZmcV7DHNzc+rWrcu2bdto06aNScIWFBQk48WEEEIIkawolojNnTuX6OiYOyI0Gg2VK1dmypQpWFtbf/WxzM3NGT58OL/88ouxi9NgMLBx48bEDlsIIYQQ4rtRJBGLjIzk8OHDxoTJxsaGMWPGfHKQ/tcYNmwYGTJkML5/9OiRyTgyIYQQQoikTJFE7OzZs4SGhgIxrWF16tTBzs7um49raWlJ48aNTbooL168+M3HFUIIIYRQgiLTV8S2UsV2I5YvXz7Rjl2sWDHgwxQYz58/T7RjJ5bnz58TEBBgfN+oUSMVoxFCCCFEUqFIIvby5UuT9xkzZky0Y/+7ZS0sLCzRjp1Ybt68ybBhw4zJoiRiQgghhACFuiZjB+l/D2/fvjV5H988ZGpT8WlSQgghhEiCFEnE0qdPb/L+yZMniXbsBw8eAB+SnHTpkucztoQQQgjxv0eRRCz2zsbYrrnjx48n2rEPHDjwyXMJIYQQQiR1iowRc3V1xdLSEp1Oh8FgYMuWLfTv3x9bW9tvOu6tW7fYu3evcVqMFClS4Orq+s3x/vTTT998jI9FRER88fE1Gg179+5N1PMLIYQQImlSJBGzsrKiRIkSHDlyBIgZ1+Xt7c3UqVMTfMx3797h5uZGVFSU8ZFJxYsXT5QxYo8ePTJ5AkBiMhgMxoeXf8q3zq0mhBBCiORDsZn127dvD3x4NuTOnTsZNWpUgpKdly9f0rVrVy5fvmySMLVq1SoxQzYmeInx+pLjCiGEEOJ/i2KJWPny5SlbtqzJI4nWrl1L06ZN8ff3Jyoq6j+PERISwsKFC2nQoAEnT540Hkej0VCwYMFE61IsWbLkJxNEg8GQ4NeXHCc5W7tyKWO9PIzv/1y/liZ1q1GtQgl6d23Pvbt3AFi2eD7Vyhc3vqqWLUa5YgW4cO6MWqGz5l+x/7F+LY3rVKNaedPYPzZl4jgWzp2lZJhxrFm5lDEfxb35j/U0a1CTahVL0qNzO+7cvmmyvcFgYOjA3vy15U+lQ43jS68XgKtXLtGpbXOqlS9Oh1bNuHLpguLxHjt8gK6tG9Okeln6dPyFS+djrtc927fQ4ee6NK1ZngnewwgLDTHus2rJPNo0rkGzWuXxGtKH588CFY/7Y2tXLsXnozKPdfLv41QoXtBk2YG9u2jRsBY1K5aiT9f2PLh/T6kw4/h91TLGe3sa3x/ct5tWjWtTp3Jp+nXvwMOPYuvarjk1K5SgVsWYl6dbXzVC5sXTR8z06odbq+r49P6Fy6ePAXDp1DHG92vDkNY1mDt2MEEvnhn3ObpnC6N7NGdom5rMGN6bpw/i1jtKWb1iKaNHxr1WJvv6sGDuzDjLDQYDQwb0ZlsSqFt+X7WM8aM+XC87t23ml8a1qFu1DKOHDyH0o+8oxMTuObgvO7ZtUjpUI8USMYDx48djb28PfGgZu3z5Mt27d6dMmTK0bduWCxdMK9lFixYxZswYfvnlF8qUKcPkyZN5+fKlSeJiY2PD+PHjEy3OZcuW0b9//zgPIc+VKxdr165l3759X/WaOHGi8RgajSbebZPb+DCdTsf82TOYNX2ycdnZM6dYvGA202YvZLf/CVyLlWDCmJEA/NqxK3uPnDS+GjVrTtVqNSnk8u1j+xIc+7SPYj99isXzZzN9zkJ2HzpBkaIlmDB6pHF9aEgIvmO92bB2leLxxtLpdMybPYOZ0/yMy86fO8O8WdPxnTKTXQeOUbpseYYO7GNc/+L5c4YN7suhg/vVCNnoa6+XsLAwhvTrSbMWrdlz+B8aNWvOiGGDFI356eOHTBoznN6DPdmw6wiNW7TBe2g/zp85yewp4xnkOYa12w5gbW2D39gRABzYvZ0Du7czec5SVm/Zj32GTEwdN/I/zvR96HQ6FsyeweyPyjxWWGgovmO9TOrT169e4jvGCx+/6Ww/cJT8BQvjO9ZLyZCBmLgXzfmNuTM+xP361UsmjfVizMRpbN0XQP4ChZnkExNbVFQUd27fYv22vew89A87D/2Dz6QZiscdHR3Nwgnu5C5UFN+Vu2jSqT9L/Uby6O5NlvqNoHbLzoxfth3nvIVYMH4YBoOBO1cv8Neq+XQeNoHxy7aTz7UUCye4Kx67Tqdj3izTugVi6r0JY71Y/4l678Xz5wwblDTqlkVzf2Pubx+ulwvnTjPNz4dhI33YtOtQTK7wUVL/8sVzhg/px5FD6sauaCKWIUMGFixYQOrUqYEPXXQGg4Hg4GBOnjzJ06dPjdsbDAb8/PxYvXo1Z8+eJTIy0tgCFrufubk5U6ZMIWfOnIkWp0ajoXv37qxatYosWbIYK6mbN2/Ss2dPrl69SpYsWb74FZt8xvqv7ZMTH28Pbly7Sv3GzYzLirgW4/dNO8jm6MSbN0GEhARja5s2zr4Xz59l946/cPNUvpIHGOvlwfWrV2nwcexFi7Fu84fYQ0OCSZP2Q+yD+nZHr9dRuWo1NUIGYuO+YhL382eBtGrbgRw5c2FmZkazFq15cP8eb4KCAOjya0uyZHVQJeH92NdeL0f8D+CY3Zna9Rqi0Wio36gZYydO/a5zE/7bs8Cn1G7QhMKuxdFqtVStWReANUsXUKlaLQoWKYqFhQXtuvTiRIA/IcHBhAS/oUXbTmTImJkUKVJQt9HPXLl4XrGYP/apMo81Y4ovFSub9iQEPn2CThdBVGRML4XWzAxLS0tFYv3Y+FGe3Lh+hXqNmsaNLSo2Ni0pLK0AeHDvLmnT/kCab7wJ7FvdvXYRvS6C6k3bodVqyedair4+s7l95TxOeQpSpExlzMzNqdakLc+fPODx3ZsEvXpO1Ya/kNnRGa2ZGRXqNOX5k4eEhbxRNPYxIz24fu0KDf91rQzo0x2dTk/lqtXj7NO5XdKoW8aP9uTGtSvUa/jhejnif4Cq1Wvj4loMCwsLOnXvw9EjBwkJjinXHh1bkSWrAwULF1ErbEChwfofy5s3Lxs3bmTAgAFcvHgxzvioT3XjAZ/cLmPGjEybNo0iRb5PIbq4uLBp0ya8vb3Ztm0bGo2GV69e0bt3b5o3b46Hh4cqFVRS0mfAUOzs7Vk0bxZPHn+4CcHa2oaAQwcZOrA3qVKlZuaCpXH2nTltEp269SJNGnUqzr4DY2JfOHcWT5/EjX3IgJjYZ30Uu8/EadjZ25t0qyntQ9wzefIk5vFhP1WvZbLN0SP+2NnZY/s+iVywbC129vb07PKr4vF+7GuvlxvXr5I5iwMj3Qdz8sQxHLM74+bhhVar3G/Iwq7FKexa3Pj+ysXzRISH4+Sck2jDh4TQzMyM6Ohonj55RINmv5gc4++jh3DKkUuxmD/2cZk//ajMjx05xKMH9/Hw9uH3VcuMy3PnzY9r8ZJ0avMzZmZm2KZNy5zFyrcA9x4whPR29iyZP4un7x+TlztvfooUK0mXts1jYrNNy6xFKwG4eeMaWjMzenRoxeNHDynk4kr/IZ7Y2f+oaNyP7t4gY1Yn1s+fzLljB0mb/keadO6HITramDTC+79pWi0vAh/jWraqyTEunzpKmh/SY5Na2bqx36CYa2XB3Jk8eV/mAOMnxdR7n+quXLg8pm7p0VnduqV3/4+ul/f1YnR0NFZWH8pcq435jj55/IjUaWyZs3g16e3s6de9vUpRv49LjZM6ODiwZs0ahg0bRubMmU3GScU3kD12GxsbGzp27MimTZu+WxIWK1WqVPj5+TFhwgSsra2NLXHr1q2jSZMmXLly5bueP6mz+1dr38dKlC7LgWOnad6qLUP690Kv1xnXXTh3hscPH1K3QWMlwvyk/4r94PHTtGjdFrePYo9vH6X8VwyXLpzD18eb/m4fujaSQtzw9ddLSHAwu3dspUbtumzedYDyFSvjPqgPkXq9glF/8PjhfcZ6DqRdl16UKl+R/bv+4vqVS+giIlixaA5aMzP0OtPpao4dPsiaZQvo3GuAKjF/qsyDg98wffIE3EeOiXOjUEREOJkyZ2He0jXsPvwPNWrXx9tjsOLjWNPbxY07NrY5S1azw/9vqteuxyhPt5i/DdHR5M1fEO/xk1mzaSdpbG0ZM3yIojEDvA0N4fLp42RxysmoBX/yU+NWLBzvTrZc+bh+4RRXzpwgKjKS/ZtWo4sIj3O93L1+id/nTqJJp36Kx/6572d839ukUrd86nopU64ie3Zs4+rli0RERLBkwSzMzMzQvS/zT+2jBlUSMQALCwvat2/Pnj17mDt3Lh06dKBw4cJYWVnFGcRuZmaGg4MDjRs3xsfHh4MHDzJkyBDSpo3b3fW9NGrUiD/++IMCBQoYl926dYvmzZuzePFixeJITlKkSIGFRQrad+5OaEgIt27eMK7b+ddWatSpn2QfSWUSe2gIt27c+O+dkoAjhw7Sr1cX+g4YEqeVLKn71PViYWFOIRdXylesgoVFClq168jrV6+4f++u4vFdu3yBAd3aUatBU5q1+pUixUrRrksvfEYMptMvDcieIxcpU1pjbZPKuM+OLRuZNMYTj9GTKFBY3a6bj02bOI6mzVuRxSFbnHV/rFuDRqOhQKHCWFpa0r3PAO7cusWtm9dViNTUn+vXotFoyF8wJrauvQdw9/Ytbt+8HpOUjZ9MhoyZsLa2plvvgZw9fTLO4Ozvzdzcgh/sM1CuZiPMLSwoWr4atuntCQ0OonUfT/5cPAOvrk2I1OvJmNWJlNYfrpeLJwOYM3ogjX7tHaeVTHy9oiVK0bF7H7zcB9GmWV2cc+YmZUprbGxSqx2aCcW7Jv9Nq9VSuXJlKleubFym1+t58+YNer2e1KlTkypVqs8fQEGOjo6sXbuWqVOnsnjxYjQaDXq9nkmTJnH48GEmTJggM/sD27du4vTJvxk+ahwQ0zwcFRVFqlQfLv5jAYcYPd7vc4dQzSdjj4wiVeqk9cX9lG2b/2D6ZF9G+UyiXIVKaofzxeK7Xhwcnbh86aJxW4PBQLQh2qRLUAknTwQwbsQQuvQeRO0GTQB4E/SaYiXLUL9JCwAe3r9LpF5P1myOAKxaPJetf/zO+GlzyZO/kKLx/peD+/dw9LA/i+bONJZlrUql8Z02i+eBgSYtjlqtFq2ZFnNz1f9c8PzZU/SfiM3M3Jxd27eQLl16SpQuB4Ber0Or1WJhoeyPPfvMDoS/M30GsiE6CkO0gYxZHfH4LaabN/xtGHv+WE4Wp5jxzcf3/cWmJb/Rrr8XBYqXVTTm/6+Cgl5TolRZGjdrCcSMI9Tr9Tg4OqocmSnVWsTiY2FhgZ2dHZkyZUoySVgsc3Nz3NzcWLx4MXZ2dsblx44do2HDhsnursfvoUDBwhzcv4ezp0+i1+uYP3s6ufLkIUtWBwBevXzByxfPyZMvv8qRxpW/YGEO7tvDmVMxsc+bZRp7UnX29Ekm+/ow5bd5ySoJg/ivl8pVq3P/7m12bd9KVFQUK5YuxM7+R3LkzK1YfI8e3MPHczAD3UcZkzCA2zev496/G69fvSQ0JJgFM6dQvU4DzM0tOLB7O5s3rGHynKVJLgkD2H/0NDv9j7PT/zjL1sZMObDT/zgursUoWaYce3fv4MK5M0RGRrJ04VwyZcqCQzYndYMGSpYux/49O7j4Prbli+aSMVNmHLI5EfT6NTMmT+BZ4FPevn3LnOmTqVS1uuLjePO4lECr1bJn4wqio6P5x38Xwa9fkT5DJqZ59ODZ4wdEhL9j8/LZ5CxYlLR2P3Lr8jk2LpxKtxF+koQlolvXrzGodxdevXxBSEgws2f4UateQ8zNLdQOzYT6P3GSqTJlyrBlyxbc3d05ePAgGo2GoKAg+vTpw88//4yHh4fJIMH/JY7ZnRk5egITxnoR9PoVRVyLM9Z3mnEsytMnj0lja6v4L9Uv4ZTdmRFjJuA71ovXr19RpGhxfCZOS/IT7q5bsxKdLoJ+PTuZLF+9YSsZM2VWKaovE9/1kiFjJqbMnM/0yROYNH40zjlyMd5vuqL/H9s3byA8/B1+PsPx8xluXD7WbzY16jSkR7tmREVFUb5KNbr2GQzAH2tXEBYaSq8OLUyOtWlv4j1n93spW6ESPfsOYswId4KD35C/QEHGTZ4RZzofNZQpX4nufQbi4+VOcHAw+QoUxGdSTGzNWrbh1YvndGvXgvCIcEqXrcAgD+XvyLa0Sknv0TNYP8+PvX+u5Ae7DHQeNp7Mjjlo0K4ns7z6EfHuLXlcitO2X8yUJv7b1qPX65g9ynQcofv0FaSzz6j4Z/j/oljJ0tSu34iOrZsQFRlFpZ9q0Ku/8uMG/4vGkNxnEk0CVqxYgZ+fn/FZmhqNBicnJ/z8/ChQoADHjh2jQ4cOQMydMklxgP+L0Ei1Q0iQJJ4fxUtD8gw+OhlXGSHhyfM6T2WVfH8zR0Unz+vl7IMgtUNIsFLZ06kdQoJE6JUdcpCYMtomvJUtSXZNJjdt27Zl3bp1ODs7G5fduXOHli1bsmDBAkXnPBJCCCFE8qFYi9jWrVuVOA3169dX5DyfEhERgY+PD+vWrTN5/FKmTJl4/H5OFmkRS1zSIqY8aRFTnrSIKU9axJT3v9oiplgiljdvXkXGdSSFJGfPnj0MHz6cN28+zIr8cWKWFGL8N0nElCeJmPIkEVOeJGLKk0RMecmqa/JbHpz9NQ/WVlP16tXZvHkzJUqUAEjyA72FEEIIoQ7FE7HPzZyf0FdSlTFjRpYvX07fvn0xMzNLUomiEEIIIZIGRdu7EysZ+TgBc3V1/e6POUoojUZDz549qVy5MteuXVM7HCGEEEIkMYqNEYuKikrQfpGRkYSHh/Py5Utu377NP//8w5YtW3j9+jUQM8HqqFGjaNq06X8cScRHxogpT8aIKU/GiClPxogpT8aIKS9ZDNZPTG/fvsXLy8t4J6ZWq2XatGnUqFFD5ciSL0nElCeJmPIkEVOeJGLKk0RMeclqsH5isLa2ZtKkScbEKzo6Gg8PD549e6ZyZEIIIYQQXy5ZJmKxvL29sba2RqPREBYWxpw5c9QOSQghhBDiiyXrRCxdunTUr1/fOH3Fpk2b0Ol0aoclhBBCCPFFknUiBlC+fHnjv8PDwzlz5oyK0QghhBBCfLlkn4hlyZIF+DClxa1bt9QMRwghhBDiiyX7RCw0NNTkfUhIiEqRCCGEEEJ8nWSfiN27dw/4MFmsjY2NmuEIIYQQQnyxZJ+IrVu3zuS9vb29SpEIIYQQQnydZJ2ILV68mAsXLpg88qhQoUIqRiSEEEII8eWS5XTNt27dYsmSJWzcuBGNRoPBYECj0ZAvXz4yZ86sdnhCCCGEEF9EsUSsY8eOCd43OjoavV7P27dvef78OS9fvgQwJmCxWrZs+c1x/q9681avdggJki5VCrVDSLBk+3im6OQaOFiYJc9OgHBdwp7VmxQk18czOaazVjuEBHsVmjzn00ydMnleK99KsU999OhRk6QpIf79WMzY48W2hjVr1uybji+EEEIIoaRklX5+KpEzGAw4ODgwa9YstNrk+WtXCCGEEP+bFE3E/t2i9a1sbGxo3bo1Xbt2JVWqVIl6bCGEEEKI702xRKxevXrf1DWp0WgwNzfHxsYGe3t7ChQoQMmSJbGwsEjEKIUQQgghlKMxJHYzlUiWbj17p3YICSKD9ZUXHa12BAn3NpkOek/O1XRyHaz/9E242iEkWIpkelNKch6s/2PqhDcKJc//LSGEEEKI/wcUS8TOnj3LyJEjOXbsWLL+dSeEEEIIkVgU65r89ddf+fvvvwFIly4dNWrUoGPHjjg4OChxevEfpGtSedI1qTzpmlSedE0qT7omlZfkuyYfPnzIiRMngJgK5eXLl6xfv54UKZLvH1EhhBBCiG+lSCJ28uRJk/cajYbSpUuTIUMGJU4vhBBCCJEkKZKIPXv2LM6yHDlyKHFqIYQQQogkS5FE7Mcff4yzTKdLns/CEkIIIYRILIokYmXKlDGOB9NoNBgMhjjdlUIIIYQQ/2sUScQyZMhAly5dTO78uXnzJuvXr1fi9EIIIYQQSZKZt7e3txInKlWqFJGRkZw+fdqYkB0+fJiUKVNSoEABzMzMlAhDfMbrsEi1Q0iQlCmS73WTXKevSMYzKaCPSsbBJ1MpzJPnVAqhEcmzTgQw0ybPysXSInleKwA2lgn/W6T4I47Onj3L6NGjuXz5ckwAGg0//PADZcqUwdXVlZw5c5I2bVrSpEmToORM7sRMGJlHTHnJNRGTecSUJ/OIKU/mEVPe/+o8YoolYv369TP+22AwcPToUcLCwowVzLc8EDyWRqMxJnji63xLInbk4F6WL5jJi+eBODhmp3u/oeQr6MKxwwdYNv83nj8LJIuDI936ulGgsCsAf/25jnWrlhAa/IZcefPTe/BwsmZz+upzJ0YitnrFUm7euM7I0eMAOHrYn2mTfXkWGEixkqUY7jWWH9KlA+Dq5Uv4+ozi7p1bODg6MWy4N/kLFErQeRMrEQs47M9vU/0IDHyKS5GiuI8cRYYMGRk2uD9HD/uj1cZUytmcsrN8zYZvPl9iJGJrVsaU+YhRMWW++Y/1rFi6kKCg1+TKnZchHiPJ7pwTgA6tf+bundvG8ipRuiy+k39L0HkTmogFHNrPojkzeB74lKzZHOk1YBgFXVzZsvF31qxYREjwG3LnLcCAoSNwcMwOwImjh5g9bRIvngVSpFhJ3IaPJu0P6RJ0/m+ppgMOHWDx3A+x9+w/lIIursb1p/85ztB+3dhz9Jxx2aH9u1k4e3rM/0eefAwYNpKsDo4JOv+3JmJf8/2Mb93X+pZE7Kj/PlYtnMXL54FkdcxO575u5C3gwsWzp1gww5dnT5+QxcGRrv2Gkjt/TP1x9OBels+fQfCbIJxz5aXn4OFkzpotQef/lkQsIfV5rLMnT+A5sDt/HTqToHMnRiK2duUybt28jqe3DwDXrlzCb/xo7t25TdZsTrh5jCTf+zr7wN7dzJs5laDXr8mdNx9unt44ZEvYdZ7kJ3QF2LVrF7t372b37t3s2bOHsLAwICZ5ih3AnxgvoazAJ4+YMm4EAz3G8MfuY9Rt1JzxXkN4+vgRk31G0GugB+t3HKZx89aMdu/P27dhXDx3mtVL5+EzZS7rdx6hYJFiTPcdpXjsOp2OebNmMHOan3HZyxfPGeHhxtDh3uw6eJT06e2YPsUXgLCwMAb168HPLVuzP+AkTZq1wHPIQMXj/tijhw/wcBtI15592HPwKC5FXHHr1wuDwcCNa1dZsGwVB4+d4uCxU4mShH0rnU7HvNmmZX7+3BnmzZqO75SZ7DpwjNJlyzN0YB8AoqKiuH37Jpt27GN/wCn2B5xKcBKWUE8eP8R3lCf93DzZvPcoTVu2ZbhbH86fPcXyRXOYOGM+W/Yew8W1OH7jvAF49fIFPiOGMmDoSP7cdZh06e2YM32SonEbYx/tSd/BnmzaE0DTlm0H1zwFAAAgAElEQVQZMaQvb9/Xv2FhoUyZMMqk7nz96iWTx4/Ce8JU/tx1mLwFCjFlfNL/fsa3TkmBTx4zY/xI+rmPYu3OAGo3+plJ3sOIiorCd6QbHXoOZPVfh6hauwGTRg0DIOj1K2ZOGs2wMX6s2HKA3PkKMmvSGBVi//r6PNbbsFBmTByt2t9hnU7Hwjm/MWfG5I9iCmNI/140bd6KXYf+plHT5ni5DwZirvOJY70YO2kaf+0PIH/Bwkwc66VK7Emm/TI2IUvoS6gjQ6YsrNq0j7wFChEWGkLwmyDSpLHleeATatVvQiHX4mi1WqrUqAvAowf3KOhSlIVrtpI1myMhb4IICw0hdRpbxWMfM9KD69eu0LBxM+Oyg/v3UcS1GMWKl8TS0pJefQeyb/dOwkJDOey/H6fsOahTvyEajYYGjZsxftI0olXsqzsWcITCLkWoWq0G5hYW/NqpKw/u3+PG9WsEPn1ibFVKKsZ6eXD96hUafFTmz58F0qptB3LkzIWZmRnNWrTmwf17vAkK4v69O/zwww/Y2qZVLeZnT59Qp2FTXIqWQKvVUq1WPQCsrKxYsWE7DtmcCH4TRGhoCGlsY67jIwf3UbBIUYoUK0EKS0s69+qP/75dhIWFKhz7U+o2aIJL0Zjv4U81Y76HDx/cA2DOtEmUr/ST6T6BT9HpIoiKihkjZabVYmlpqWjc8PXfz/jWKSlDpsws+WMPufN/qBNTp7ElLCSYkOAgIiMjMRgMJuX6IvApep2OqKiYFlutmTplnpD6PNb83/woU7Gq4jHHGuftyfVrV6jfqKlx2ZFDB3DK7kytejF1dr1GTRnjO4Xo6GgCnz55f52/L3OtFksrK1ViV7RDVlqs/n9KaW3NnVs36NOxBVozM7x9Z1DItTiFXIsbt7l66TwR4eFked/UntLamhMBhxjt3g8bm1T4/rZI8bj7DRqKnb09C+bO5MnjxwDcu3sbR6fsxm1s06bF2saGBw/uc+PaVTJnycrwoYP45+9jOGV3Zqinl7HrTw3R0VFYpvxQeWg0GjRaLQGHDpIyZUoG9O7GzRvXyZU7D4OHDccpu7NqsQL0HRhT5gvnzuTJk5gy/6l6LZNtjh7xx87OHtu0aTlxPACt1ozO7Vry+NFDChcpyqBhw7G3jzs34ffiUrQELkVLGN9fvniOiIhwsjg4ktLammNH/Bnh1gebVKmYMnsJAPfv3SGb40fXkW1aUlrb8OjBfXLnza9g7MVxKfrhe3j54rmY76FDNk4cPczjh/dxGzGGDWuWG7fJlScfRYqWoEf7lmjNzLC1Tcv0+SsUiznW134/41uXN59yZQ4x9dvd2zcY2PkXtGZmDB8/nTRpf6B63caMHdYXrdaMFJaWjJ4yFwDn3Hkp5FqcQV1bo9WakcY2LRNmLVE05o9j/9r6/J9jh3n88AEDPUbz5+/KXysAvQcOwc7OnsXzZhnrlhvXr5IpS1a83Adz6u/jOGZ3ZrD7SLRaLbnz5se1eEk6t2mOmZkZtmnTMmfRSlViVywRW7JEnYtKKMPB0YlN+06wf9df+AwfzOK1W7F9Px7m8cP7+AwfRNvOPbG2SWXcp2iJ0mza9zfrVy7Ge1g/Fq7ZgoVFwvvZv5advX2cZe/evYvzR97Kyorw8HcEBweza/tWfCZOxWvseNauWsGQAX1Yu3Er5grG/bFSZcoxe8ZUjh89QvESpVizcjnh4eFkyJiJAoVc6DvQjSxZHVi2aD6D+/Vi7cYtqsUKny7zj126cA5fH2/cR4wGwBAdTb4CBenT3400trZM85uAl4cbsxcsUyLcOB49uI+3+0A6dO2NzftruVjJMuw4dIo1yxcy3K0Py9f/Rfi7d6T/12e1srIiIly9AeCPHtxnlPsg2nftRXRUNLOnTWT8lNlxehQiIsLJmDkLvy1cSY6ceVgy7zd8Rgxh5qJVivY+fO33M751asiazYl1u4/hv2c7viPdmLNyEyltbPCaNIuCLsXYuWUDk7yHMHPZRgwG+DFTFibOXoZTjtysWjSbyaPdmThnuSo9Pl9Tn4eEBDNvxiTG+M1S9QYkO7u410tIcDB7dmxj9IQpDB89nnWrV+AxuC8r1m9Gr9eTKXMW5i5dTc5ceVg4ZwbeHm7MW7ZG8TJXLBErU6aMUqcSKjA3j/njXqNuI/5ct5IL505TvnI1rl2+gPfQvtRt3Jymv/xqso/F+0l+W/7ahT9+X8Hd2zfIlUfZX67/ZmVlRUSE6R/L8PBwrK2tsbCwoHARVypUqgJAm187snTRPO7du0uOnLnUCBdHp+yMHDOeqZMmEBz8hmYtWpHdOQdpbNMybdY843ZdevRm7eoV3Llzm1y586gS6385cugg3sOH0HfAEGMrWc069alZp75xm159B1GrallCQ0JIlTq1ovFdvXQBz8G9adCkBc1btzcuj52suk2HbmxYvZw7t65jZWWFLiLCZP/w8HBSWlsrGbLR1UsXGO7Wm/rvYx/v7U6jZi3JnNWBp08emWy7ZeNaNGjIV6AwAJ179qdh9bLcuXUD55y51QjfKL7vZ3zr1BBbJ/5UuyGb163i4tmTPLp/l449Y8aV1m/Wih2b13Pu1N88vH8HjQbjwP12XfvQql5F7t2+gVMO5cv8a+rzuVMnUL9pSzJlcSDwX9eS2iwsLCjo4kq5ipUBaNWuAysWz+f+3bscCziMRqOhQMGY67xb7wHUrlyGWzevkzOXsnVkkhkjJpKnMyeP4zGgm8mySL2eVKlSc+rEUTwH9uDXrn1o07GHcf3eHVuY4jPC+N4QHU1UVCSpUin7h/VTHLM7c//eXeP7oNevCQ0JIatDNrI5OhEa8mG8icFgwBAdreoYsdDQUJyyO/P7n9vYse8wLVq15cG9u4SEvGH3zu3G7aKiooiKjFJl3MmX2Lb5D0YNH8oon0km48d2bNvCiWMBxvc6vQ6tVmtM4pXyz/EAhvTtSsfuffm1S08Adv21Gd/RnsZtYq7jKFKlSoODY3Ye3r9rXPcm6DWhoSHGrhwl/XM8gCH9usXE3jkm9sMH9rJ0wWwaVi9H1zYx5d2wejkunDvN82fP0EfqjftrtFq0WjPMzNWfWiC+72d865R07uQJvAb1MFkWGannxfNnROr1JsvNzcwxMzfn5fNnROo/zFumVpknpD4P8N/HykWz+bl2eXq2bw7Az7XLc+l8wu6cTEwO2ZwICw0xvjcYDEQbook2RPP82VP0H/1/aLVatGZazFW4zr85EZs5c6bJS/xvcc6Zh5vXruC/dydRkZFs3biWqKgobH9Ix7gRg+k/zJta9ZuY7JMnfyEC/Pdx4ewp9Ho9yxbMxDlnHjJmzqrSp/igYuWqnDl1khPHjxIREcGcmdMoX6kK1tY2VPmpOvfu3mbHX1uIiopi+ZIF2Nn/SM5c6rUSvHr5gq7t23D/3l3evXvLzGl+FC1eEiurlEyZOJ47t2+h0+mYPWMqOXLlIpujk2qxfs7Z0yeZ7OvDlN/mUa5CJZN1QUGvmDppPM8Cn/L2bRgzp02iyk81FE0oH96/xyiPgQz2HE3dhh8GAucrUIjDB/dy/sxJ9Ho9i+bOIEeuPGTKkpWyFatw7swpTp44ii4igkVzplO2fGXFW8QePrjHaM9BDPYcRZ0GH2Lf7v8Pm/cEsHlPAPNXxtxNu3lPAIVcilK8VFkO7t3JpfNniYqMZOWSeWTIlDnB01ckpvi+n/GtU1L2nLm5df0Kh/ftIioykr/+iKkTXYqV4sqFsxw/vJ/o6Gj27dhMSPAb8hV0wbVEGQ7v38XVi+eIioxk3fIF/JgxE5mzKlvmCanPN+07wfodR1i/4wizl64DYP2OI3GmtlBDparVuH/3Dru2byUqKoqVSxdiZ/cjOXLmpmSZcuzbvYML584QGRnJsoVzyZgpMw4JmEbpW33zPGJ58+Y16U+9cuXKNwcllPct84hdOn+GOdMmEPjkETly56P3IE92bv2DP39fEeculNGTZlHQpShHD+1nydzpvAl6TUGXovQe5Em6T/Tx/5fEmEcsdjBw7DxFx48eYZrfBJ49C6SIazFGjh5P2h9+AODc2dNMmzSBe3dv45wjF55eY8ieI2F3JibWMIRNG9ezaP4c3oaFUbJ0GYaN8MbWNi0rli5i3ZpVhAS/oUjRYriPGEWGjJm++XyJ0QAYO1h/xKhxeLj1x//A3jjJ1eoNW7H/MQOzZ0xh5/YthIeHU7ZcRYZ4epE6dZoEnTch84jNneHHhjXL41zL46fOIfhNEAtmTeNN0CsKFSlG/yEjSP/+Ov7neACzp03kxbNAChUpytCRPtim/SFBcSe0mp43w48Na+N+D8dPmU2hIsUAePrkEW2a1GbvsfPG9Vv++J31q5cREvyGPPkL0c9tOJmzJOyH0rfOI/Y138/41n2tb5lH7PL5MyyYMfF9nZiX7gM8yJLNiaP++1izZA4vnz/DwcmZbv2H4ZwrLwA7Nq9n0+8rYuZWzFeA7gM8Evzj9FvmEUtIfR4r8MkjOjSvy/bDZxN07sSYRyx2sH7sPGLnz57mtym+3Lt7B+ccuRg6YjTZnXMA8OeGtaxdsZTg4GDyFSjI4GEjyJzVIUHnVXVC19hEzGAwoNFoJBFLpmRmfeUl11lXZGZ95SXnO85lZn3lycz6yksWE7oKIYQQQghTkogJIYQQQqhEEjEhhBBCCJVIIiaEEEIIoRJJxIQQQgghVCKJmBBCCCGESiQRE0IIIYRQiSRiQgghhBAqkURMCCGEEEIliT6Nrbu7e2If8otpNBrGjRun2vmFEEIIIb5Goj7iCDB57qSS5BFL30YecaQ8ecSR8uQRR8qTRxwpTx5xpLxvecRRon/q5FxhCCGEEEIoKdETMTVbxIQQQgghkhNpERNCCCGEUEmiJmIajYa9e/cm5iGFEEIIIf7fSvQWsSxZsiT2IYUQQggh/l9KnrdWCCGEEEL8PyCJmBBCCCGESpLvpB0iUUVEJs/JoZLrXFwA+ii5sUVpFmbJ84JR6270xPAumc7d9i4iecYNYJXKTO0QEkRD8r3Ov4W0iAkhhBBCqEQSMSGEEEIIlUgiJoQQQgihEknEhBBCCCFUIomYEEIIIYRKJBETQgghhFDJN09fkTlz5sSIQwghhBDif843J2L79+9PjDiEEEIIIf7nSNekEEIIIYRKJBETQgghhFCJPOJIATqdjitXrvDy5UuCg4OxtrYmU6ZM5M6dG0tLS7XDE0IIIYRKJBH7SlevXmXPnj28ffuWoUOHxrutv78/y5Yt49SpU+h0ujjrLSwsKFmyJC1atKBatWrJ+nlyQgghhPh6GoPBIE8e/gK3b9/Gy8uLkydPApAtWzZ27dr1yW2fPXvGwIEDOXXqFADxFXFs8pU7d25Gjx6Ni4tLIkf+ZS4/DlPlvN8q8w9WaoeQYPLQb+VFRyfPMk/Ov9Eik+l1/jQoXO0QEuyHVCnUDiFBUlkm37Yh+9QJj13GiH2Bw4cP06RJE06ePInBYMBgMBAUFPTJba9du0aTJk04deqUMQHTaDTG16feGwwGrl27RuvWrdm4caMyH0oIIYQQqku+6adCrl69Sq9evYxdixqNBoPBQEhICAaDwaQ78fnz53Tr1o0XL16YbAuQMmVKsmbNSurUqQkLCyMwMNCYzMUeIzIykhEjRpAqVSpq1qyp5McUQgghhAokEfsPHh4e6HQ6k9arsmXLUq9evTjbjhkzhqdPn5psW61aNdq3b4+rqytmZmYm29++fZuNGzeyZs0a3r17h0ajITo6mhEjRlC0aFHs7e2//wcUQgghhGqkazIeR48e5fLly8aWLVtbW5YsWcLixYtp0qSJSWvY+fPn2b17t3FbMzMzfH19mTlzJsWLF4+ThAE4Ozvj5ubGpk2byJkzp7H1LCQkhPnz5yv2ORPDg7u3aV6jNM+ePgbg+uULDOzyCy1rl8Wjb0eePHpg3PbJoweMHNiNX2qXo1e7xpw6EaBW2CYCDvvTskl9qpQrQf9e3QgMfArApo3raVKvJlXLl6R7p3bcvnVT5UhjrF25FB8vjzjLT/59nArFCxrfL188n+rlixtfP5UtRvliBbhw7oyS4Zr40tgBrl65ROe2zalevjgdWzXjyqULSoUZx++rljHO2xOAFUvmU7NiCeOrevniVCxRkAvnzsS7Ti1rVy7D533sANeuXKJLuxbUqFCCjq1/NinX+NYp5Yj/ftq3bETdKqXp9msLY9kdDzhEu5/rU7tSSTwG9Sbo9SvjPjv/2kzrJrWp91NZxowYQmhoiOJxA6ycP4129crRvmFF2jesSJefqwFw5u8ABnZqSvsGFZg0cgDBQa/j7Lt0th8bVqhT/x87fICurRvTpHpZ+nT8hUvnY8p8z/YtdPi5Lk1rlmeC9zDCPirXVUvm0aZxDZrVKo/XkD48fxaoSuyx1q5cio/3h7pl+JD+VC1XlOoVilO9QnE6tvnZuG7jutU0qfsTtaqUYdjA3rx+9VKNkCURi8/OnTsBjF2QU6dOpUyZMp/cdvv27Sbburu707Bhwy86T7Zs2Vi8eDEZMmQwJnKbN28mMjIycT7IdxYVFclvvt7o9THdtzpdBBNGDqJRi3as2OKPS7HS/ObrBUB0dDQTRgyiUNESrPrrMJ17u+E3aijv3r1V8yPw6OEDPNwG0rVnH/YcPIpLEVfc+vXi3JnTzJ05nUnTZrLH/xily5ZnyIA+qsaq0+lYMHsGs6dPjrMuLDQU37FeJjeItOvYlT1HThpfjZo1p0q1mhRycVUybODrY38bFsbQfj1p2qI1uw//Q8NmzRk5bJCSIQMxcS+c8xtzZnyIu22Hruw69I/x1bDph3KNb11SiP1tWBhD+veiafNW7Dr0N42aNsfLffB/rlPKk8cPmTDKk/5DPNm67yjNfmnL8MF9eBb4lLEjhjJw2Eg27z5MuvR2zJ42CYAL584ww28cQ0eM5c+d/tjYpGLCKM//ONP3ce/2Dfq4j2Xp5kMs3XyIBev3EvTqBb+N96RzXw/mb9iL7Q/pWTF/qnGft2GhLJw+jl2bf1cl5qePHzJpzHB6D/Zkw64jNG7RBu+h/Th/5iSzp4xnkOcY1m47gLW1DX5jRwBwYPd2DuzezuQ5S1m9ZT/2GTIxddxIVeLX6XQsmDOD2TNM65abN64xd9Eq9hw+yZ7DJ1m8cj0AN65dYfni+cxetIItu/yxtrGJs69SJBGLx9mzZ4GYMVzly5f/bBIGcOzYMeO/c+XKRevWrb/qXPb29gwePNikVez8+fMJiFp5G1ctIV+hIsb3F86cJFVqWypWq42FhQXN2nTi/p1bPLx/h2uXzqOLCKdZ605otVpcS5Zl3IxFn2wxVNKxgCMUdilC1Wo1MLew4NdOXXlw/x7/nDhG63YdyJEzF2ZmZvzcsjUP7t/jzWdu1lCCj7cHN65dpX7jZnHWzZjiS8XKP31234vnz7J7x1+4eXp9zxA/62tjP+J/AMfsztSu1xCNRkP9Rs0YM3Eq0dHRSoUMwPhRnty4foV6jZp+cv3F82fZs3Mbg93j/hGKb50Sxnl7cv3aFep/FPuRQwdwyu5MrfflWq9RU8b4TiE6OjredUoJfPqEug2bUqRoCbRaLdVrxQwF2b19C4WKFKVIsRKksLSkS6/+HNy3i7DQUAIOHaBq9doUdi2GhYUFHbv15tgRf0KC3ygWd6z7t2+QzTmXybJ/Ag6St6Ar+V2KkSKFJb906s3xQ3t5GxYKgO/wfuj1OkqWq6J4vADPAp9Su0ETCrsWR6vVUrVmXQDWLF1ApWq1KFikKBYWFrTr0osTAf6EBAcTEvyGFm07kSFjZlKkSEHdRj9z5aI6f7eMdUujD3XLu3dvCXz6BCfnHHG2f/jgPgZDNFGRUQBotVosLdW5C18SsXgEBn5oYq1ateoXbavRaKhdu3aCzlezZk2sra2N72/eTBpdYPG5c/M6Rw7splWnnsZlj+7fIWs2J+N7MzMzMmbOyoO7t7lz8xoOTs7MnzaBXxv/xKCurXj37i0pUqg7sW10dBSWKT98CTUaDRqtlhy5ctO2Qyfj8oDD/tjZ22ObNq0aYQLQZ8BQJk6fTbr0dibLjx05xKMH92naotVn9501bRKduvUiTRrb7x3mJ31t7DeuXyVzFge83AdTt2o5enf5lRQpLNFqla26eg0Ygu/UuHHHmj3dj45de5H6E+Ua3zol9B44hInTTGO/cf0qmbJkxct9MPV+Kk+fru2N5RrfOqUUKVqCHv0+tMJdvnCO8IhwHj24TzbH7MbltrZpSWltw6OH92O+wx/9IdVqzYiOjubJ40eKxQ3w+uULQkLesGLuVLo2r86Ifh24ceUCjx/eJbODo3G71GnSYpXSmsDHDwHoP9yXHoO9sfrob4CSCrsWp0vvD63NVy6eJyI8HCfnnFhafShXM7OYcn365BENmv1C9ToNjOv+PnoIpxymCahS+gwcGuc6v3XjOlYpU+LWrzv1qpWnX89O3Lt7G4BSZcpjZ5+BFo1qUb1CcS5fvEDXnn1ViV0SsXiEhX2YWytz5szxbvvu3Tvjv3PkiJt9f4kUKVKQLVs24/vPTZGRVOj1emZO9KbHQE+TCjAiPDzOLwtLKysiIsIJCw3h1PEAnHLkYuG6nTRq+Svjhw9U5Vfrx0qVKcfJE8c5fvQIkXo9K5cuJjw8HF1EhHGbixfOMWGsNwPd3NULFLD7xE0cwcFvmD55Au4jx3x2YuAL587w+OFD6jRo/L1D/KyvjT0kOJjdO7ZSvXZdNu06QLmKlfEY1IdIvV6pkAGws/v8jTMXzp3h8aOH1K4ft1zjW6eUT8UeEhzMnh3bqFG7Hn/uPEDZCpXxGNyXyEh9vOvU8OjBfbzcB9Kxa2+0ZmYmSQGAlZUVEeHhlC5Xkb07t3HtyiV0EREsXTgbrZnZJyfT/p5CgoPIX7goDVr8yuxV26lSqyETRw7gXVhY3HrRMqZeBPjhM0m+Gh4/vM9Yz4G069KLUuUrsn/XX1x/X64rFs1Ba2aGXhdhss+xwwdZs2wBnXsNUCXmT13n7969o0BBF/q7ebDxr30UdnFl6MDeREbqiYgIJ0++/Kxcv4Ud+4+RK09eJo4bpULkkojFK+1HrR7/lRT9+OOPxn+nSJHwyfQ+rjS+5ThKWLd8PgVcipl0SwKksLQi4l9f0ojwcFKmtMbc3Bz7jJmo2aAZFhYWVKhak/R29ly9dE7J0ONwdMrOyDHjmTppAvVrVUWn15HdOQc2qVIDcOTQQfr26EK/gUP4qUYtVWP9lGkTx9G0eSuyOGT77Da7/tpKjTr1k9x1FV/s5hbmFHJxpXzFKlhYpKBVu468fvWK+/fuKh/oZ+zesZUatet9slzjW6cmCwsLCrq4Uq5iZSwsLGjVrkNMud69G+86pV25dIHeXdpSt2FTWrRpj6WVlcmPI4Dw8HBSWltTtHgpOnTrjbf7INr+XA/nHLlImdIam1SpFI05W/acDPedQ+78hTG3sKBq7Ub8kM6OKxdOo/t3vRgRjlXKlIrG91+uXb7AgG7tqNWgKc1a/UqRYqVo16UXPiMG0+mXBmR/X67WNh/KdceWjUwa44nH6EkUKKz8OMjPKVGqDH4z5pLdOSeWlpZ07NqL1y9fcvfObRbNn4WDgyNO2XNgbWNDn4FDObhvtyo3eEgiFg87u4+aOG/dinfbj1uyHj58mKDz6XQ6Hjx4YGwVSOrTVxzz38e+HZtpXa8iretVBKB/pxb8kC49Tx7cM24XFRXFk0cPyOzgSGYHR969HxMRKzoqGoPKM56HhobilN2Z3//cxo59h2nRqi0P7t0lV548bN30B14eQxk9bhINm8Qd25QUHNy/h0VzZ1KrUml+bRnT+lKrUmnOnTll3OZYwCEqVa2mVoifFV/s2RydCA39cL0YDAaiDdFEG5QdIxaf4wGHqVjl0+Ua3zo1OWRzMrnz7eNyjW+dkv4+HoBbn6507tGX9l1ihj5kc8zOg/t3jdu8CXpNaGgIWbJm403Qa0qUKsuaTTv5fcseXIoWJ1KvxyGb42fO8H1cu3SOPVs3mCyLjNRTu/EvPHl437gs+E0Qb0NDyZjZQdH44nPyRADu/bvTvltf2nbqAcSUcbGSZVi2YQcr/thFoSLFiNTryfq+XFctnsuy+TMZP20uJctWUDP8OAIOH2Tvru3G91FRUURFRZEihSXPAwPRf9Sybm5ujkajUWW8siRi8ShcuDAQUxFt3Lgx3ibun376MMj4wIEDCTrfpk2b0Ov1xgH72bNn/4891DVz+R+s2nbI+AKYtuh3SlWoQtDrVxzYtQ29Xs+GlYvImDkrDo7OuBQrjVZrxsZVi4mOjubgnr94/folhVyLq/pZXr18Qdf2bbh/7y7v3r1l5jQ/ihYvyeNHD/Gb4MO0WfMoX7GSqjHGZ//R0+z0P85O/+MsW/snADv9j+PiWgyI+XwvXzwnT778aob5SfHFXqlqde7fvc2u7VuJiopi5dKF2Nn/SI6cuVWOOsaHci3wVevUVqlqNe7fvWNarnYx5RrfOqU8vH8Pb/eBuA0fTd2GH24yKFexCufOnOLkiaPoIiJYMHs65SpUJqW1NTdvXGNwn668evmC0JBg5s6YTM16DTE3t1AsbgBzCwtWLZzB1YtniYqKZOemteh1OkqWr8qVC6c5f+oEOl0Evy+ZRbEyFbBKqc6YsH979OAePp6DGeg+itoNmhiX3755Hff+3Xj96iWhIcEsmDmF6nUaYG5uwYHd29m8YQ2T5ywlT/5CKkb/aZF6PdMnT+DunVvodDrmzZqGc85cZHN0olTZ8vyxfg33794hIiKCeTOnUrpsBVKq8P8hiVg8YpMrjUbDq1evmDFjxme3rVWrFhYWMV/4o0ePGp8z+aVev37N3Llzja1hGTJkIH/+pPdH80tYWloxfPx0tv+5lnYNq3Du1HEGe/kCYJUyJaOnznRjDG4AACAASURBVOPMP8do26Ayf65ZhvuYyaS0tlE15myOTvTuP4heXTtSr3oV3gQFMWqcL7+vXolOF0Gf7p2oXKaY8fX0yWNV4/1aT588Jo2tLRYWSauL7L9kyJiJyTPns37NCmpVLk3AoYOM85v+2XFwSnv69Alp0tgav/tfuk5tGTJmwu+3eWxYu5LaVcpw9LA/Pu/LNb51Stn653rC371jwmhPalcuaXw9efSQkT6TmDnFl8a1KvHi+TMGucfcAVysRGlq1WtI59ZNad2kDunS29Grn5tiMcfKkTs/HXsPZa7fKDo1rsIx/z24jZ5KOrsf6esxjuVzJ9O9RU1evXxO537qTK/xKds3byA8/B1+PsNpVK208WVhbkGNOg3p0a4ZHZrXI52dHV37xNxI8cfaFYSFhtKrQwuTfZKKSlWr80ub9gzs3ZW6P5Xl9q0bjJkwBYDGzVrSoPHP9O/VmcZ1qhAaGoqHt48qccpDv+Oh1+upV68e9+/fN84PNmjQIDp37vzJ7SdOnMjixYuBmETq999/J2PGjP95ntDQUDp37mwyXUbHjh1xc1OuEpGHfitPHvqtPHnot/Lkod/Kk4d+K08e+v2dWFhY4O7ubkzCDAYDkydPplevXp8cB9a/f38KFYppng0MDKRp06bs3bv3s8ePiopi+/bt1K5dm3Pnzhl/caZNm5bu3bt/nw8lhBBCiCRDWsS+wIQJE1i6dKkxGYsd0Fe1alVq1qxJkSJFyJIlCwDBwcF0796d06dPAzGtW05OTlSoUAFHR0dSpkzJ8+fPuXv3LgcOHODNmzcmiZ5Wq8XPz486deoo+hmlRUx50iKmPGkRU560iClPWsSU9y0tYpKIfaFRo0axZs0akwd6fzxmwtLSkgwZMpA6dWrMzMyMLVyxxfup8RX/XmcwGBg2bBjt27f/zp8mLknElCeJmPIkEVOeJGLKk0RMeZKIKWTTpk1MnDiRV69emSRP//Zxy1msf2/373VWVlYMHz6cZs3UmR5BEjHlSSKmPEnElCeJmPIkEVOeJGIKCg0NZfXq1axbt85knNjX3lEUW+yWlpY0aNCAXr16fdHA/u9FEjHlSSKmPEnElCeJmPIkEVOeJGIquXLlCgEBAZw7d47r16/z6NEjIiMj493HysoKR0dHChcuTOnSpalUqRKpFJ75+VMkEVOeJGLKk0RMeZKIKU8SMeV9SyKWfD91EpAvXz7y5ctnfB8dHc3r168JCgoiLCzMOAGshYUFNjY2pEuXjnTp0qkVrhBCCCGSGEnEEpFWqyV9+vSkT59e7VCEEEIIkQzIPGJCCCGEECqRREwIIYQQQiWSiAkhhBBCqEQSMSGEEEIIlUgiJoQQQgihEknEhBBCCCFUIomYEEIIIYRKJBETQgghhFCJJGJCCCGEECqRREwIIYQQQiXyiCMBgEO6lGqHkCBPkvGDeX+0tVQ7hP85Ecn0od+W5mZqh5Bg0YYotUNIkJXnH6sdQoKNqZVH7RASJOitXu0QVCEtYkIIIYQQKpFETAghhBBCJZKICSGEEEKoRBIxIYQQQgiVSCImhBBCCKESScSEEEIIIVQiiZgQQgghhEokERNCCCGEUIkkYkIIIYQQKpFETAghhBBCJZKICSGEEEKoRBIxIYQQQgiVSCImhBBCCKESScSEEEIIIVQiiZgQQgghhEokERNCCCGEUIkkYkIIIYQQKpFETCSaHX9tpULpYiav4i752Ll9m3Gblf/H3n1HRXG1YQB/Ftil2BABUSxgrzTBhmIJWFEQbCExURNRA4o0ETBio4qKqKiosUWjMbF8NhQLooC9K3YBqdKbLAvsfn8gK0MHdUfJ+zuHc5w7c+FhnF3evXNnZu9uLP/dlcWUH0VcPo95MyZhypjBsLf+AU8f3QcA7AxaBwuTAZgyZjCmjBkMq4kjxH28lznB0mSgeN2iOVZsxReLuHIZ0y0mYIShARbZzEVKSjIAYInTIhgN0MXwQf0wfFA//PT9ZJaTMlWX+9T/jsHCdDS+GzIAvy9xRl5uLstJPzq0fw+8lrsDAPbtCsZoIwPxl8kQfRgZ9MHD+3cBAGEXzuH7SWMxdvhA2M2bhbdxsWxGB1C6z6dZmGKEoT4W2ViL93nElcuYbDYWRgP14LBwPjIzMlhO+tGh/Xvg/WGfA6X71WrSWIz7sF/jK+xXkUgEd6eFOHPimKSjYlinlpiu06ZS+6Q+qhjdXZnRZtKtFX436YzVY7ril/7t0EJOBgAgxQEm9FLBitFdsHxUF4zq1koi2atyIfQsLCaMhWF/Pfw4fTLu3ys9tm/fvIGpFhMxdGA//Dh9Mh4+uM9axjIRly9i1nRzmI4YiHk/T8OjD6/DMhvXemP39iBG24E9OzBtgjHMTYYg0N8LAoFAkpHFqBAjn83Y8RNw5dpt8ZfNgkXQ0tGFscloCAQCbNm0AYHr17AdEwCQkpSIAO9lsHddicMhkRhvPhW+y10AADEvn8P5d28cDonE4ZBIHPjfJXG/Ny+fw2/zbvG6gO0H2PoVAAAJ8W/h5uwA698WIDQsEto6unC2s4FIJMKLZ0+xfc9+hEXdRljUbez96x9Ws5ZXXe77d+/A32c1fl/piZBLV9CkaROs+AoKd4FAgB1bNmJL4Fpx24xZ1jgbflP8ZWY5FSOMR6Ovti4yM9Lht9oDq/0CcPJCBHr21sIaTw8Wf4PSfe7qbI+5vy1EaFgUtHT04GT3G9JS32GpqxNcl65A6OUotGqljIC1PqxmBUr3+c4tG7G13D7PzEjHmtUeWOUXgBMXItCrwn5NT0vF0sV2uHr5okSzSktxMKa7Mib0VmW0y8lIYYpWawztpMRo11NvDj315th0NRYe514is6BIXMCN6NIKPVSbYn14DNaEvUHP1k1h1KmlxH6XMokJ8Vjm7ooVnj6IuHEHU6Z9jyVO9igpKYGzw0I4OLkgPOoWJppbYImzvcTzlZeUGA+fFe5YtNgd/7sQicnfz8BSpwV4n5+PvLxcrPNegaN/M9+rL5w9haN/H4BPwBb8dfwcUpKTELxpPSv5qRAjX0RiQgK2bdmEFau8IcPlYvnvrnj2NBrmFlPYjgYAaN2mLfYeOY/uvfoiPy8XOdlZaNaiBQDgzavn0OzSrVIffkEBUt8lo4NGJ0nHrVZUxFVoaetgpPEoyHC5+PkXa7yNi8WL58+QkpwEzU5d2I5Ypepy79+7Cyajx0FXTx9cLg9zf1uIq+FhyMnJZjWv9wp3vHgeDVNzyyrXP3pwD6EhJ+HkugwAkJKcBIGgEMUlJQAAaWkpyMrKSSxvVaIirjD2+cwP+/z8uRDo6PZDP4P+kJWVhY2dA86fC0FeXh6reava52X7teTDfpWSlgKv3H6dP8sK6urt0UdLR6JZv9dpA/UWcrgWm8VonzOwHaSlpPAgkTmqq8CVwoWX6cgsKEaJUISomCx0VCr9PfqqNcWFF+nIKihGvqAEYS8zoN++hcR+lzJt1dshNOwK+mppIzc3F1lZWWihqIicnBxkZWWhuLgYIpEIUlLsH9vvkpMwzswS2noGkJKSgvEYUwBAfFwMXO1/Q1GRAEOHGzP6XL18EWaTp0Ozc1fIKyhgxuy5OH/mBEQikcTzy0j8J5L/hM0b18Ni8lS079ARAODg5AJlFVVs27IJSYkJLKcrJa+ggJhXL2D363RISUtjmXcgMtJTkZuTjR2b/BH96D7aqLfHr7ZO6NFbCzGvnkNOTh7LXRYg5kOxNtduCdp31GTtdxAKSyAr//FNkMPhgCMlhYjwMMjLy8Pedi5evniOrt26w2nJUmhofh1FZHW5nz97iqHDPp4KlpKWglAoRGJCApo3l/wfozI29ouhrKyCP4I3IzkxsdL6oA3+mG1tg2YfMnbr0Qu6/fpjzoypkJaWRosWigja+aekYzOUCIWQk5cXL5ft8+NH/8HAwUPE7YqKLaHQpAni38aiR8/ebEQFANjaL0YrZRXsKrfPu/XoBZ0K+3Vzuf26ZdcBtFJWgd3cmRLNevxxCnILSzC6uzJayn8c39h9MwG5hSWVTldejWEWbD1bN0FSTiGA0v+XohKheJ0QIigrcL9g+uopKDTBi+fP8P2USZCWlsaGTVvRsmVLTLKcgoU2cyEtLQ1ZWVls3bGblXxltPUMoK1nIF5+8vA++IV8qLfviOXe69BKWQW+K90ZfYQlQsjKfXwPkpKSQk5ONnJzctC8hWTfa2hEjHx2yUmJuHL5En6YMVPcpqyiWn0HFrXrqIF/Q6/BxsEd3suckBT/Fn109DHZahZ2/3sOJuPNsdLVDjnZWeDzC9C9V1/MtVuMXYdD0LOPDla7LUJxcRFr+QcMMsSt69dwLfIqiouK8OfuP8Dn89FarQ1699WGo4s7/hdyEVraunCys0FxEXtZy6su93xbO4ScPoHox49QWFiIHVs3Q1paGoLCQlbzKiurVLvu4f27SEyIx9gJk8RthYV8tGmrjq27DiDk8g2YjDXFcndnVj5tlxk4yBA3r19D1Id9vm/3TvD5fBQUFEBOjjmiIScnDz6fz1LSUq2q2Odl+3XLrgM482G/rii3X6vqIwm5hSX1ai+vd+umMOmmjBNPUgEAT1LyMLJLKzSTlUZTnjSMNJUgI83en2oNzU6IunUfbr8vh7PDQqSnpaFJkybYvG0HIm7cxW8LFmGx4yIUFBSwlrG8hLdx8HB1wCxrWzRp2rTaY2LgECMc/+cg4uNi8T4/Hwf3/QEAEAgk/15DhRj57ELOnMIgw6FQasXeJNO6kpHhQkaGC+NxZlBt3QZZWRnwXL8NPfpog8vlYrSpBZSUlBH96B509Adiud8mdNDoDJ6sLKxmzUNWZgbexr5hLX9HDU0sW+WN9Wt8MGHMSAiKBNDs1BnNWygiYPM2dOrcBbKyspgz3xYZGel48+Y1a1nLqy53k6bNMPe3hXB1tscUs7Ho3KUb5OUV0LRpU7YjV+vcmRMYNdYUPB5P3Hb08EGAw0GvPlqQlZXFXFt7xLx+hdcvn7OWs6OGJjxWeWP9Gm+YjhmJog/7XFpKCoV85h8fPr8ACvIKLCWt3tHDB8Ept1+tv4L9+ikGdmgBK7022HsrATEZpYXMhRfpeJvNh+MwTcwf3B53E3PAL6q9oPtSuFwuuFwuzCZZok2btrh16wZi3rzBoMFDwOPxYPXjT5CV5eHGtSjWMpaJfvwQC+bMwHgzS0z7cWaN244xNcd3o8bB4bfZmPvTVAw0NAIANGHhvYYKMfLZRV4Nx4jvTNiOUaN7t67hd4d5jLbi4iLEx8Xg9LG/K7VzebK4ERmO8Ash4nZhSQlKSorB48lKJHNV8vLyoKHZCYeOnsSZC1cwzWoG3sbGIDc3G+dCTou3KykpQUlxCWRl2ctaXnW5u3bvjgGDBuPY6VD8L+Qi9PQNUFRchA4dNdiOXK1rEVdgNII5/yT1XTJj9FFKSgpS0lKQlmFvNkjZPv/76CmEXLiCaVY/4W1sDMaaTkRcXIx4u6zMTOTl5qJdhw6sZa1O6rtkFH1l+7WhRnVrhbE9VbAt6i2i3+WL25vLyeDc8zQsP/cSa8JiIBSJkJgj+VGa61GRmD9nNqOtqLgI71KY/wdA2Qdadv8Pbl6LwOIF1vhl/kLMnPNbrdunp6VivPlk/H3yAvb9ewotlZTRtl17yLPwAYQKMfJZCYVCRD95gr59tdmOUiPNLt3x8nk0wi+EoKS4GCePHERJSQn6aOlh19YAPH5wFyXFxfjfPwcgEBSij5YeiouLsH3jGryNeY0igQB7tm+ERqeuUG/fkbXfIyM9DdYzf0RcbAwKCt5jU4A/9PT7Q05OHuv8vPHm9SsIBAIEBa5H565dv5qCprrccTFvsGDer0hPT0NuTg4C162B6QRzyHDZmSNTm4z0NKSnpaJ7hblU/Qca4kLoGTy8fxfFxcXYs3Mr1Nq0RfsOGuwERWnWOTN/EO/zjQH+6KffHxPNJ+POrZu4HhWBwsJCBG1cj6HDRkBBoQlrWavTf6AhLoaewaMP+3XvV7BfG0JPvTmGaLbExquxiMtingLu374FpmipQVqKA+UmXIzs0gpRFS4CkIRuPXoi+sljnD1zCsXFxTh44E+UFJdgwMDBuHf3Ni5eCIVQKMTxo/8iOysL2rp6Es9YJj4uFstdHeC8dCXGm1V9QU1FN6KuYrmrA97n5yM9LRW7gjfB1JydW/x8ex8jyFctKzMTBQXvoazCzlyNumqh2BJLvQIQvMEXQes80blrT3j4bkS7DhqYv8gVG3w8kJGeik5dumOZdyB4srIYbPQdkhPisczpN+Tl5aBXX124rPBj9ffo0FEDtoscYWM9G+/z89F/4CCs8PJFixaKiH8bh4Xz5yA3Jxs6ev3gvYadS7OrUlNuU7NJ+GHKJJSUFGOk8SjYObmwHbdayclJaN68BbgVCsVBQ4Zh/gIHeHq4IicnBz1794HXmkBIS0uzlLR0ny9Y5IjfrGd92OeDscLLDy1aKMLTbx3WrfHGu5Rk6Oj2g8cq9m9fUZVBQ4ZhXoX96snyfm2IYZ1bQp4rDcdhzAt9XE8/x8WX6Zim0wYrR3cBv1iIsJcZuJ8o+XvptWzZEus3BsHPezU8Vy1Hj569EBi0DRqanbDa2w9BGzdg+VJXdOrcBYFB21idPnDi6GHwCwrgs9IdPuUm5fus3wIt3X5V9hk93gwvnj6BlfloSEtLY5yZJab+MFNCiZk4IjZnj5KvRi5fWPtGX6GkLHYnFH8K1RZfx2nC/5LCom/zOJfjfluFRnkFLM5v+hR+Ya/YjtBgq8Z0ZztCg2S9/zouJmoIdUVe7RtVg05NEkIIIYSwhAoxQgghhBCWUCFGCCGEEMISKsQIIYQQQlhChRghhBBCCEuoECOEEEIIYQkVYoQQQgghLKFCjBBCCCGEJVSIEUIIIYSwhAoxQgghhBCWUCFGCCGEEMISKsQIIYQQQlhChRghhBBCCEuoECOEEEIIYQkVYoQQQgghLKFCjBBCCCGEJVSIEUIIIYSwhAoxQgghhBCWcEQikYjtEIR9Yc8y2I7QIAM6KbEdocHyC4vZjtAgwm/4LUNaisN2hAYpEJSwHaHB5HnSbEdokG/4MEds2nu2IzRI59ZN2I7QYIryDT/OaUSMEEIIIYQlVIgRQgghhLCECjFCCCGEEJZQIUYIIYQQwhIqxAghhBBCWEKFGCGEEEIIS6gQI4QQQghhCRVihBBCCCEsoUKMEEIIIYQlVIgRQgghhLBEhu0A/xUCgQD379/Hy5cvkZubi6ZNm0JNTQ0GBgZo1qwZ2/EIIYQQwgIqxBooMzMTRUVFUFFRAYdT/fPr8vPzERQUhMOHDyM3N7fSemlpaQwZMgSLFi1Cjx49vmRkQgghhHxlqBCrhwcPHmDXrl24fPkyCgoKAADy8vIYMWIEbG1toampydj+1atXsLa2RmJiIqp7tnpxcTHCwsJw5coVzJs3DwsWLPjivwchhBBCvg4cUXUVAmHw9fXFnj17IBKJKhVVHA4HPB4Pa9euhbGxMQAgJSUFlpaWSEtLE28DgNG3/EiaSCQCh8OBhYUFPD09v/SvU0nYswyJ/8zPYUAnJbYjNFh+YTHbERpE+A2/ZUhLVT96/TUrEJSwHaHB5HnSbEdokG/4MEds2nu2IzRI59ZN2I7QYIryDT/OabJ+Hbi5uWH37t0QCoXigqn8FwAUFhbCyckJz58/F/dJS0sTbyMSiSAnJwcDAwOMGTMGRkZGUFNTExd2ZdscOXIEe/bsYfPXJYQQQoiE0KnJWhw+fBhHjhxhFFRVDSJyOBzw+Xx4eXnBxsYGERER4u1btGiBRYsWwdLSEjwej9Hv9u3b8PPzw/3798Xb+/v7Y9SoUWjTpo2kfk1CCCGEsIBGxGpQWFiI9evXM04r9u7dG9u2bcOtW7dw9+5d7NmzBwMGDBCPal2/fh3e3t7i76Guro7Dhw/j+++/r1SEAUC/fv2wf/9+jBs3Tvw9iouLsXPnTon9np8iNSke65baYuHUkVg2fxoe3Y4CANy7Fo7lNlawm/YdPB1m4eWT++I+sS+fwsthNhZOHYnVi35GzIsnbMWvZN+eXfjdfYl4OfRcCCaMNcGQgf3w66wZiI2NYS9cBQf/3I3VHm6V2m/duIYh+n2q7LPezws7t23+0tFqdfDPPfBc7i5efhb9GHN+moZRQw0w+4cpiH78sE7rJO2vCvv8yOGDmDTOGMZDDGBrPROxMW8q9Vnn54UdW9nb5xHhlzD7+0mYMHIQ5s+cjkf37zLW37l5DcaDtKvsu2mtD/ZsD5JEzGrVZ59HXg3H9EnjMXKwPpztfkNmJrtTLurzGo28Go7pFuPxnaE+Fi9iL/v+4AD8bGqIWWZGmGVmBOspxoz1e4L88c++YEbbkf07YPvDePxqORJrltkjPTVFkpGrFHHlMqZbTMAIQwMsspmLlJRkxvq1vp7YvmUTS+mYqBCrwcmTJ5GR8fHFMHz4cPz1118YNmwYmjZtCnl5eQwYMAC7d++GmZmZeKQsOjoaQOkVkZs3b0aHDh1q/DkyMjLw8fFBt27dAJQWfCdPnvxCv9XnIxQKEeTlgh5a+gg4eB7T5tgj2G8pEmJeYlfASljNd8L6v0JhPHE6gjwXg/8+H/z3+di0ygkjTCdjw6ELMBozCcG+S9n+VSAQCLB5YwDWr/UTt2Wkp2OFx1KsDdiIyxE30FdLGys9fmcxZSmBQIDgoEBs3rC20rr8vDz4rvaoNGqbl5sLP8/l+OfQfknFrJJAIMCOLRuxJfBj9vf5+Vi8yAaWU61wNvwGzC2nwsPVqdZ1ks4dHBSIzQEfc9+7cxt/BAdhw5YdOBd+HTp6BvBZuUy8Pi83F76rl+Ofg+zt86TEePiucIedszuOn4+A5fQZWOq8EO/z8wEA+fl5WOe9ovLxkpeLdT4rcfTwATZiA6j/Pk9PS4WHmzMWu3vgzKUIKCkrI7Dc65mV7HV8jaanpWK5mzMWu3ng9MUIKLVSxsZ17GSPff0Ctq6rset4OHYdD0fw4fMAgPf5edixwQtnjx9ibB9xMQQRF0PgsW4HtvwVAmVVNQSvW8VGdLGE+Ldwc3aA9W8LEBoWCW0dXTjb2UAkEiEvNxfeqzzw91/svheWR4VYDSIjIwGUFkaKiorw9/evclSLw+Fg1apVUFNTE2/P4XAwadKkOt+SgsfjYeHCheIXZ3Z2trig+1q9fvoQRYWFGDvlZ0hJSaG33kA4e29Bfl4Oho6aiG599CAlJYUBw0cDAFIS3+L+jato004Dg0aOA4fDwZBREzF3iReEQiGrv8sy9yV4Gh0NC8sp4rakpEQICgtRUlI6UVpKShpycrJsRRTzXO6GF8+eYsKkyZXWBa7zhdHw7yq1O9nNg0AgwLCRxpXWSZLXcnc8fxaNCeaW4rar4ZegodkJY0zNwOFwYGpuiVW+6yAUCmtcJ0mrPdzw/OlTTCy3z3X0+uHv42fQoaMGsrOzkJebg+aKiuL1jgvnoahIgOEs7vN3yckYZ2YBbT19SElJwXjMeABA/NtYAEBQwBoYDqt8vLjZ26BIIMDQKo4lSanvPr986QK0dfpBT78/ZGVl8dsCB1wMDUF+Xp7Es9f3NRp+6QK0dT9mn89i9rjXL9ChU9dK7X5L7VBcJICB4QhGe15uDsymz4RK6zbg8nj4brwlXkSzN2oNAFERV6GlrYORxqMgw+Xi51+s8TYuFi+eP4O97TwUCYow/DsTVjOWR4VYDR49egSgtNAyNzdH06ZNq92Wx+PB3Nyc8Sln3Lhx9fp5RkZGkJOTEy+/fPmynokl6+2bF2jTQRN/bfWH04xxWL3oZxTyC9Ctjx4mz14o3u7100cQFPKh2rY93r55DmW1tti+5nc4/DAGa91+A5fHg5QUu4ei4+Il2Bi0Da2UVcRtPXv1hkH/Afh+qgX66/XFsSP/wNXdg8WUpRbYu2DNhiC0aqXMaI+8Go74t3GwnGZVqc9q3wAsXeEFBQV2r0qydVgMv4AgKJXL/uL5U7RRbwcPVyeYfjcEC6xngseThZSUVI3rJGmhgwv8A5m5AUBBoQkiwsNgamyEMyf/hznzbMXrPP0+7PMm7O1zbT19zFv4cQTxyaP7KCzkQ719B1yPvILE+DiYT5leqZ+H91q4LFsNeRaPl/ru89iYN+hY7hZCLRQVodCkCeLfxkk0N1D/12hszBt01KiQXUHy2TPT05Cbm40/t67H3KkmWGY3S1xU2S31xTyn5ZBXUGD0GW02FUYmpuLlezeuor1GZ4nmrkgoLIGs/Me/pRwOBxwpKSTEv4W3fwCWrfJCE5bfC8ujQqwGmZmZ4n9ra1c9h6K8Xr16MZZ79uxZr5/H4/HQvn37Kn/+1+h9Xi4e3YpCO80u8PnjOEZb/Iggz8XIz80Wb/Mu8S22+bhi4g/WkFdogvd5ubgedhb9h42C3+4T0DIYgi2eLigpZvdWDioqqpXaCvl8tFVvh30H/kbkjbsYbzoRLs721d4TTlKUVVQqteXkZCNwrQ9cl62q8gbDVfVhg7Jy5Ry5OTkIPXMSo8aa4mjIJQweOhxuTgtRXFxU4zqJ5q5h/xkMHIywa3cw7YcZcF5kg6IiQa192JDwNg7LXR0xy9oGwhIhNq/3g7P7SnBQ+XhpVcX/k6TVd5/zCwoYH2QBQE5ODnx+wZeOWkl9X6MFBQWQ/Qqy5+ZkoZeWHiZM+xmb95/GiDFmWLPMHrk5WWhZoaisyu2oyzh64A9YzbGTQNrqDRhkiFvXr+Fa5FUUFxXhz91/gM/nQ1BY+NW9LgEqxGr0/v3He7E0qcOn2opvAjWNoFWn/KlPPp9f7/6SJCPDhZKqGozGTIIMlwsDIxMoKqng1dPST1Bvnj+Gn8tcDBllhlGTfhD36dyzL7T7D4UMl4tRFj8gJzsTyQmxbP4qVTp4cD84HA76amlDVlYWC+0d8erVTlnYagAAIABJREFUS7x4/oztaJWs9/OC5VQrtGtf83zErxGXy0UfbV0YGg0Hl8uF1U+zkJmRgbiYmBrXfS14PB64XB5m/joPeXm5ePXiBduRKnn6+CEWWs/A+IkWmPrDTGxc6w3zydPRtl372jt/hara57JycijkFzK24/P5lUZw2FLTa1ROTg6Fhexn76DZBe6+W9CtlxZkuFyMGGuOlkrKeP74fq19L54+iiA/Dyx090b33rUPXHxJHTU0sWyVN9av8cGEMSMhKBJAs1NnNGn6dT5OkAqxGjRv3lz873fv3tW6fWpqKmM5Kyur3j8zOfnjlR3lf/7XqLV6e/Df5zPahEIhREIRHt+5hoBldjCfMQ8TrH4Vr1dt2x4F5fqU3Q5EJPz67p74LjkFRUUfR16kpKQgLSUFGRkui6mqFnYxFDu2bsLoYQPx0/RJAIDRwwbi/t3bLCerXfsOGsjP+/j4L5FIBKFICKFIWOM6tp0+cYxxRZxQKERJcQmafmXPjr15LQKLF87F7HkL8fOc3wAAV8LOY/f2IEw0NsScH0vnMU00NsTDe3fYjFqrmvZ5Rw1NxMXFiNdlZWYiLzf3q/lwUtNrtKOGJt5WzJ4n+ezPHt9H6Il/GG3FxUXg8mqeG3vkz+34e89WuHpvhm5/wy8ZsU7y8vKgodkJh46exJkLVzDNagbexsaga/fubEerEhViNWjdurX431euXKl1+4iICMby3bt3q9myajExMUhPTxcPW7dq1ape/SWtp05/SElJ4czhPRAKhbh2KQQ5WelQbt0G23zd8fNCdwwZNZHRR2/wCKTEx+LapRAIS0oQ8s9eKCopQ53lOQVVGWQ4BGfPnMK9u3dQXFyM4K1BaNtWHR01NNiOVsmlyDs4e/kazl6+hr0HjwIAzl6+Bm3dfiwnq92wkcaIi3mDs6dPoKSkBH/u3gFlZVV07tKtxnVs69VHC2EXQnH39i0UFQmwbfMGdO3eHepf0ShTfFwsVrg5wsl9BcabfbxA4szlm/jf+Qj873wEtv9Z+of3f+cj0FdHj62odVLTPjcaPhL3bt/CjWuRKCwsxNZNARhiNIL1eZFlanqNDq2QfdvmABiykJ3L5eLAjkA8fXQPJSXFCDl2EEUCAXr01a22T8TFEIQcPwSPddvRpUdvCaatXkZ6Gqxn/oi42BgUFLzHpgB/6On3R+vWamxHqxLd0LUG/fr1Q3R0NEQiEc6fP4/o6Ohq5309e/YM586dY5z7//vvv2FiUvcrMw4dKr0suOyqy7rMS2OTrJw8HDw348AWP4T8uw9KKq0x380XURdPQ8AvwO6AVdgd8PEy5gUe69C1tw4WLl+Pv3dswIGta9C2QyfMc/Wp8cHpbDEaNhyLHJyx1HUxsnOy0aePFtYHBkFa+tt8ZMvXqrVaG/hv3IaN63yx1mcVOnXuCk//DeBwODWuY5uGZif8vsoHvqs9kJmZAR09fXj6BXwV2cqcPHYY/IIC+K5aCt9VH28T470+CFo6X3+RXlFN+1xFtTVW+vgjYI033r1LgbZuP/y+wovtyHWiotoaK739scH/Q3adfljKQvZO3Xphlq0LtvmvQFZGGjp27ganlevBq2FE7PSRAyjIz4Pbbz8y2ncdD//ScavVoaMGbBc5wsZ6Nt7n56P/wEFY4eXLWp7a0LMmaxAVFYVZs2aJ73jfpk0b7NixA507M0dvXr16hTlz5iAxMVF8B36hUAgOhwM/Pz9MmDCh1p917949/PjjjygpKYFIJEKnTp1w+vTpL/WrVULPmpQ8etak5NGzJiWPnjUpefSsScn7lGdN0ohYDQYNGoRevXohOjoaHA4HSUlJmDRpEsaPHw8tLS0IhULcvXsXZ8+eRXG5q/6sra2xbds2iEQiLF26tPT+R6am1f6ciIgIuLi4iL8Hh8OBlVXlWxAQQgghpHGhEbFaPH36FNOmTYNAUHpJetlpw/LKP7S7bdu2OHPmDGxsbHD16lUApYWVoaEhpk2bBm1tbSgqKiItLQ1PnjzBsWPHcPHiRfEIWtnIW0hICGRlJXfzUBoRkzwaEZM8GhGTPBoRkzwaEZO8TxkRo0KsDkJDQ+Ho6Mi4gq5st5V/DiWXy8WuXbugr6+PR48eYfr06eJTjTXNGylfyMnIyGDv3r3Q05PspFkqxCSPCjHJo0JM8qgQkzwqxCTvUwoxumqyDkxMTLB371507dpVfLuFMmXLysrK2Lp1K/T19QEAffr0gZOTE6MIE9+qodwXAHERxuVy4evrK/EijBBCCCHsoDlidaSjo4Njx44hMjISYWFhiI+PR0FBAVRVVdG/f3+MHz8eChVuvjdz5kzIy8vDx8cHBQUFVY6KlRVjGhoaWL16tbiQI4QQQkjjR6cmJSApKQl79+7FxYsXERv78Q7y8vLy0NfXx5gxY2BmZgYZGfbqYjo1KXl0alLy6NSk5NGpScmjU5OSR3PEviGFhYXIzs6GgoJCgx6B9KVQISZ5VIhJHhVikkeFmORRISZ5dPuKb4isrCxUVSs/YJoQQggh/z00WZ8QQgghhCVUiBFCCCGEsIQKMUIIIYQQllAhRgghhBDCEirECCGEEEJYQoUYIYQQQghLqBAjhBBCCGEJFWKEEEIIISyhQowQQgghhCVUiBFCCCGEsISeNUkAACk5RWxHaBCuNH2WkLSSb/gtI5//bT7fkyfz7R7nMtLf5vM9b8Vlsh2hwQw6fJvP4C0qEbIdocHaKvIa3PfbfXUTQgghhHzjqBAjhBBCCGEJFWKEEEIIISyhQowQQgghhCVUiBFCCCGEsIQKMUIIIYQQllAhRgghhBDCEirECCGEEEJYQoUYIYQQQghLqBAjhBBCCGEJFWKEEEIIISyhQowQQgghhCVUiBFCCCGEsIQKMUIIIYQQllAhRgghhBDCEirECCGEEEJYQoUY+SwO7d8Dr+XuAIB9u4Ix2shA/GUyRB9GBn3w8P5dAMCz6Mew/mkaRhsZ4JcfpyD68UM2o+OvP3djlYebePn4kcOYPHE0jI36Y/6vP+HN65fiddejIvC9pSm+G6KP+b/MwNu4WDYiA6hf7lP/OwrzcSPx3RB9rPh9Cfh8PhuRxQ7+uRue5bKXuXXjGobq92G0PY1+jF9nTIXJEH3MtprMyvESeeUS5vwwCZNMBsN29vd4/KD0WL5yKRQzp5pi0ihDONv+goS3zONBJBJh+ZJFOHfquMQzl7l6+SJmTjfH+BEDMffnaeLXYZnAtd7YvT2oyr6n/ncE081HSyJmtQ7+uQeeH95b9v4RjFFDDcRfxob6GKr/8b0l6mo4rCxMYTLEAC72NsjMzJB43tuXz8HFahTjy95iKG6HhyL2+WP4O86Gy/cmCHS3QVpygrjfwxtX4GM3A0t+GI21zr/idfQDiWcvc/DP3fBc/vH1uXTxIow01IPJUH2YDNXH7B+nVOpz8ti/mDzBRJIxGRpynO/duRVTJxhjgvFguDnaIjUlWZKRxagQI59EIBBgx5aN2BK4Vtw2Y5Y1zobfFH+ZWU7FCOPR6Kuti/f5+XCxt4HFNCuEXL4BM4up8HBzYi37tqBAbArwF7c9uH8X2zZvgO+6TTh7KQoDBw+Bi8MCAEBSYgJ+X+IIe2c3hIbfgI6ePrxXLfvqcz9/Fo1NAf7w37AV/zt7GTnZWdjzR7DEc5dl3x4UiKANayuty8/Lg+9qD4hEInHb+/x8uNj9BstpP+DclZswmzwVy5Y4SjIykhPjsWbVUixwcse/Z6/CYtqP8HCxQ0pyItb7rMAyr3X450w4evTuiwDfleJ+6WmpWOlmj6grlySat7ykxHj4rHDHosXuOHEhEpO/n4GlTgvwPj8feXm5WOu9Akf/PlBl35TkJGwN9K9ynSRU9d7y02xrnLtyU/xV/r0lPS0NK9wXw9ltGU5euAqlVsrYtM5P4rn7DRsF3wPnxF/jf7CGRvc+6G1giD983THC7Ht47j2N7tr6OLDRCwCQnpKIA4GemGztAK99ZzDcdCp2eruCX/BeotkFAgG2bwlEUCDz9fnyxTNs3bkfoVduIfTKLfzx52HG+uTkRGzawN6x0pDj/PzZUzh/9hQCg/fi39NhUG2tBr/Vkn8/B6gQI5/Ie4U7XjyPhqm5ZZXrHz24h9CQk3ByLT3Ar4ZfQkfNThgz3gwcDgem5pZY5bMOQqFQkrEBAKs93PD8aTQmTposbkt9lwKrGbPQuUtXSEtLY/K0H/A2LhbZWVk4e/oEjEZ8h/4DB0NKSgo//zIXDs6VR3W+ttyhIafx3aix6NK1G5o0aYI58xbgxLF/JJ4bADyXu+HFs6eYUC57mcB1vjAa/h2j7erl0uNlrGnp8TLBfDJW+a2X6PHyLiUZYydaQEtXH1JSUhg5ejwAIDM9DQJBIUpKSgAAUlLS4MnKivstsp6BNurt0auvjsSyVpSSnITxZpbQ0TOAlJQUTMaYAgDexsVgif1vKCoSYOhw40r9RCIR1nguw9gJkyQdWcxruTueP4vGhFreW5zdSt9bwsPOQ0tXD7r6/SErK4t5tva4dP4s8vPyJBmbIeNdEkIO7oTVQne8iX4AhabN0c/IBDJcLkwsf0Jy3GukxMciMy0FA40noEtvXUhJSaHfsFEAgNTEtxLNK359mn98fRYUvEdKchI0OnWuso9IJILPymUYP5G9Y6Uhx3luTjasfv4Vam3agsfjYaLFVDx+dJ+N+JBh5aeSRsPGfjGUlVXwR/BmJCcmVloftMEfs61t0Kx5CwDAy+dP0Va9HZa7OeH2jWvoqNkJjkuWQUpK8p8JFjq4QFlFBTu2bkJSUmn270zGMLaJvHoZysoqaKGoiOfPn0JdvT0W2VjjafQj9OrdF0uWrvjqc8fGvIbBgMHidR00NJCelobs7Cy0aKEo0ewL7Euz79y2GcmJH0/LRF0NR8LbOLgt98Sh/XvE7S+eP0Vb9fbwcHXCretR6KjZCU5uHhI9XrR09aGlqy9ejn70AIV8PtprdIK2ngFsZ0+HlLQ0WrRQxPqte8XbBQTvQytlFTjb/iKxrBXp6BlAR89AvPzk4X3wC/lo174jVnivQytlFfisdK/U7/i/h6CkpIzBQ4Yj/NJ5SUYWs3X48N6ybbP4OC9vcwDzvSUu5g06amiK17dQVISCQhPEx8ehe49eEstd3qn9wRg0ygwqbdrh8a0IqKp3EK+TkpZGKzV1pMTHQGvgMHTprSteF/PsMYoEfKi0aSfRvAscXKCs/OH1mVT6+nz14jnk5OXhbDcPr148R+du3eGw2B0dNToBAI7+cxCtWinDcOhwXL4YKtG8ZRpynE+aYsVYvhYRjk6du0okb0U0IkY+ibKySrXrHt6/i8SEeMan6tzcHISeOQmTMaY4cuYSBg8dDjfnhSguLpJEXAZlleqzA8Djh/fh67kci5xdAQC5OTk4fvQwfp1rg+NnLkG9XXssX+oiiagM9c1dUFAAOTk58Xo5OXkAQCEL88Sqyp6Tk40Na33gumwVOBwOY11uTg7OnTkBk7HjcezsJRgaDYeb4wIUF0n+eAGAhPg4rHJ3wE9zbCAtJQW1NurYELwPx0OjMHL0eHh5LBafWm1Vw2uDDQlv4+Dh6oDZ1rZo0rRptfkSE97in7/2YYHjEgknZKrLe8u4cqMwBQUFkP1wbJeRlZNj5TgHgMzUFDy+GYHhE6YBAAR8PniycoxteLJyEBQy86UmxWP3mqUYO/1XyCk0kVheoOp9XlBQgN59tLHI2Q3/nroALW1duDjYori4CAnxb/H3gb2w+/Be8zWo63FeXkT4JezbFYy5CyQ77aEMFWLkizl35gRGjTUFj8cTt3FluOijpQtDo+Hgcrn4fsYsZGVkIC4mhr2gVbgaHgY7mzlYaL9YPNrE5XIxbIQx+mhpQ1ZWFr/Os8Xd2zeRn5/PctqPqsotJyePwsJC8TZ8fgEAQF5BgZWMFQX4ecFyqhXU23eotE6GK4O+2roYYjQCXC4PVj/NRmZGBuJiYySe8+mTh7Cf+xPGTrTEFKuf8b8jh8DhcNCjtxZ4srL4ZZ4dYt+8wptXLySerTbRjx/Cds4MjDezxLQfZ1a7nVAohO+q3zHfzkk80vQ1Onv6BEaNY763yMnJobBCUVPI50Nenp3j/M6V8+ihOwDNFFsCAHiysigSFDK2ERTyGcVj7IsnCHSdj4HGEzDC/HuJ5q2OwYBB8A/cCs1OXSArK4vZ1jbITE9HzJvX8F65FLaLnNH8KzlW6nqcl3fy2D/wXu4GD09/9NXWrb3DF0CnJskXcy3iCjw81zDa2nXQQPSTj1e9iUQiCEVCiESSnyNWnZPHj2DDWl+s8FwDw6HDxO3tO2gg9V2KeLlsnpKIhfltVakud0cNTbyNixEvx8XEQKlVKzRr1pyFlJWFXQxF5JXL2Ll1E4QfjoMxwwbCN2AzOnTUQPTjR+Jty44XoYSPl1vXI+D5+2JY2zpi7EQLAEDauxQUlRuZ40hJQVpKGjIyX9fb6o1rEVjp5oT5dk4Yb1b1fKsyqe9S8PTJI3ivKD2NU1JSjEI+H6bfDcbO/f+itVobSUSu1bWIK1juxXxv6ajRCTeiIsTLWVmZyMvLrbLAl4ToO1EYPNpcvKyq3hE3L4WIl4UlJUhLShCfrnx69zr2rPWA2c82GGgyQeJ5qxNxJQwF79/DePQ4AEBJSQlKSkqQl5uLJ48fYvWHq59LSorB5/MxZvhA7D54BGpqbSWasz7HeZk9O7bg+D8HsWZjMHr27vuFE1aPRsTIF5GRnob0tFR079mb0T5spDHiYt7g3OkTKCkpwf49O6CsrIpOXbqxlJTp3p1bWOvriXUbtzGKGQAYPc4UkRHhuHk9CkVFAmzfshEGAwahabNmLKX9qKbcxqPG4tyZU3gW/QT5+fnYvnUjRn2YzPo1uBh5ByGXryHk8jXsOXgUABBy+Rq0dfth2EgTxMW8xtkPx8ufu3dAWUUVnSV4vCS8jcVqdyc4uK4QF2EA0G/AYFw+H4LHD++hpLgYB3YHo3WbtlBv31Fi2WoTHxeL5a4OcF66sk5/nFqrtcHZ8Fs4eSESJy9EwnvtZqiqtcHJC5FfTRFW3XvLkGEjcO/OLdy8FonCwkIEb94AQ6PhUGBh5FcoFOLt6+fo2O3j3LQuffSQm52Jm5dCUFxUhNB/90JZrS1at9NAauJb7F7zO6bbLPmqijAAKC4qwoa1Poh586r0iu3NAejUpSt09PRxMeIOQsKuISTsGnzXB6G1WhuEhF2TeBFW3+McKL1q8sjfBxAYvJfVIgygETHyhSQnJ6F58xbgcrmM9tZqbeC/cRs2rvXFWt9V6NS5KzzXbKg0N4gtf//1JwSCQtj9xpxgfeCfE+jVuy9Weq1BgL83kpMS0VdLF0tXeLGUlKmm3D169cZCBxe4u9gjKysTQ41GYK6NHUtJ66e1Whus3RSMwLU+8PdeiU6du8LLX7LHy6nj/4DPL4C/51L4ey4Vt6/2D8IvNvZYs9IdubnZ6N6zDzy8AyAtLS2xbLU5cfQw+AUF8Fnpzpis7Lt+C7R0+7GYrOGSk5LQvEXl9xYV1dZY7u2PDWt9kPouBVo6enBn6fWZn5MNAb8AzVu2ErfxZGUxx90Ph7f649/t69BWsyt+diq93Unkuf9BUMjHgY1e4ltaAID10jXo3Etb4vnLGzbSBAnxb+Fga43cnGxo6fbDKp91rGaqqCHH+eEDe5Gfl4c5PzHviXYm7MYXzVoVjqj8TXvIf1ZKDjuTnz8VV5oGdSWt5Bt+y8jnF7MdoUF4Mt/ucS4j/XV8yKqvW3GZbEdoMIMOSmxHaJCikq9jmkdDtFXk1b5RNb7dVzchhBBCyDeOCjFCCCGEEJZQIUYIIYQQwhIqxAghhBBCWEKFGCGEEEIIS6gQI4QQQghhCRVihBBCCCEsoUKMEEIIIYQlVIgRQgghhLCECjFCCCGEEJZQIUYIIYQQwhIqxAghhBBCWEKFGCGEEEIIS6gQI4QQQghhCRVihBBCCCEsoUKMEEIIIYQlVIgRQgghhLCECjFCCCGEEJZQIUYIIYQQwhKOSCQSsR2CEEIIIeS/iEbECCGEEEJYQoUYIYQQQghLqBAjhBBCCGEJFWKEEEIIISyhQowQQgghhCVUiBFCCCGEsIQKMUIIIYQQllAhRgghhBDCEirECCGEEEJYQoUYIYQQQghLqBAjhBBCCGEJFWKEEEIIISyhQowQQgghhCVUiBFCCCGEsIQKMUIIIYQQllAhRgghhBDCEirECCGEEEJYQoUYIYQQQghLqBAjhBBCCGGJDNsBSOPz6NEjHDt2DHfu3EFCQgLy8vLA4/Ggrq4ObW1tjBs3DoaGhmzHbDSKiooQGhqKqKgoPHjwAGlpacjOzgaPx4OioiI0NTVhYGCAcePGoUOHDmzHbfSEQiFmzpyJ69evAwDU1dVx8eJFllM1DgKBAJGRkbhw4QLjWG/SpAlUVVWhq6uL0aNH0/vLZxQVFYXz58/j9u3bSElJQW5uLuTl5aGkpIQ+ffpg0KBBMDU1hZycHNtRv1kckUgkYjsEaRzevXsHDw+POv3R6d+/P3x8fKCuri6BZI3X33//jcDAQKSmpta6rbS0NMaMGYOlS5dCSUlJAun+m7Zu3Yr169eLl6kQ+zzCwsLg5eWF2NjYWrft1asXvL290aNHDwkka5yePn0KNzc3PH78uNZtlZSU4ODggClTpkggWeNDhRj5LF69eoXZs2cjOTm5zn2aNm2K7du3Q09P7wsma5wEAgEcHR1x7ty5evdVVVVFUFAQ+vbt+wWS/bfdv38fVlZWKC4uFrdRIfbpfHx8sGvXrnr14fF42Lx5M4yMjL5QqsYrNDQUjo6OKCwsrFc/CwsLeHl5gcPhfKFkjRMVYuSTZWZmwtLSEgkJCeI2aWlpmJiYYOjQoVBWVkZaWhrCw8Nx4cIFxh+pli1b4vDhw2jfvj0b0b9ZixYtwpkzZxhtLVq0wLhx46Cjo4OWLVuioKAAr169wrlz5/D06VPGti1btsShQ4fQsWNHScZu1PLy8mBubo63b98y2qkQ+zQrVqzAgQMHGG1KSkqwtLREly5doKioiISEBFy8eBFXr15lbCcrK4ujR4+ic+fOkoz8Tbt37x5mzJgBgUAgbpOWloaxsTGGDh0KVVVV5Ofn48GDBzh69CiysrIY/WfOnAlXV1dJx/6mUSFGPpm9vT1Onz4tXlZRUcHmzZuhra1dadsHDx7Azs4OiYmJ4rb+/ftj3759EsnaGJw6dQoODg6MNgsLC7i7u6Np06ZV9jl27BiWL1+OgoICcZuenh7++uuvL5r1v8TJyQknTpyo1E6FWMMdO3YMLi4ujLbZs2fDzs6uyjlJERERcHBwYBQH+vr62L9//xfP2hiUlJRg0qRJePbsmbhNTU0NmzdvRp8+fSptn5ubCycnJ4SFhYnbOBwODh48CB0dHUlEbhToqknySe7du8cowrhcLoKDg6sswgBAS0sLf/zxBxQVFcVtN27cYLyQSfVEIhHWrl3LaDM3N4e3t3e1RVjZNgEBAYxTBnfu3KEC4TM5duxYlUUYabi8vDz4+voy2hwdHeHi4lLtxHBDQ0MEBAQw2m7duoUnT558sZyNSWRkJKMI43K52L59e5VFGAA0a9YMGzduRO/evcVtIpGo3qeR/+uoECOfZPfu3YzlGTNmoFevXjX20dTUhLOzM6Nt27Ztnztao3T79m3GKeBmzZph6dKldeo7fPhwjBs3jtFW8fQmqb/Y2FisXLlSvNy1a1cW0zQeBw4cQEZGhnh5xIgRsLa2rrXfoEGDMHjwYEZbaGjoZ8/XGF2+fJmxbGpqim7dutXYh8fjYeHChYy28PBw0Mm2uqNCjDRYXl4ezp8/z2izsrKqU18zMzO0bNlSvHz37l0kJSV91nyNUcWRQxMTEzRr1qzO/SdMmMBYvn379ueI9Z9VVFQER0dH5OfnAwAUFRUZRRlpuEOHDon/LSMjA3d39zr3NTU1BYfDQfPmzdGhQwe8f//+S0RsdOLj4xnLdb2gp1+/fozl9+/fIzMz87PlauzoPmKkwa5du4aioiLxcs+ePes86Z7L5cLIyAjHjx8HUDqcHRISglmzZn2RrI3FixcvGMv1nYdR8T5iaWlpn5zpvywgIAAPHz4UL69evRqqqqosJmocnjx5wigKRo4cWa8LeszNzWFubg5paekvEa/RqliwCoXCOvWraj+X/9tAakYjYqTB7ty5w1iu+KmoNhVvW3Hjxo1PztTYTZo0Cba2tpg6dSqGDx8OTU3NevUvP1kfAF1m/gmioqKwc+dO8fLUqVNhYmLCYqLGIyIigrE8atSoevWXlpamIqwBKn6IuHfvXp36lf8wAgAKCgpQVlb+bLkaOxoRIw32/PlzxnJtcwkq6tKlC2O54i0WSGVjxozBmDFjGty/4htr69atPzXSf1JGRgacnZ3F82A0NTXh5ubGcqrG4/79+4xlugJPMgYMGMC46OTs2bOYP39+pffq8oRCIYKCghhtw4YNo0K4HmhEjDRYXFwcY7m+j89p164dYzk5OZlx7xry+R05coSxrKury1KSb5ubm5v4aQZcLhf+/v6Ql5dnOVXjUf4UvKysLOO0ZEZGBvbv34/Zs2fD2NgYWlpaGDBgACZOnAhvb288ePCAjciNwrhx46CioiJeLioqgrW1dbUfkgsLC+Hq6opr166J23g8HhYsWPDFszYmNCJGGqziY3XqOzemVatW4HA44lEFoVCI9PR0tGnT5rNlJB+dOnWq0uNK6nvKhwD79u3DpUuXxMt2dnbVXt5P6q+kpIRxZXDZqK1AIEBAQAD27t1baf5RYWEhsrKy8OzZM+zevRujR4/G0qVLab5ePTVp0gQ+Pj6YN2+eeB8nJCTA0tISo0aNgqGhIVRUVMDn8/HkyRMcO3aM8TQVWVlZ+Pv70w1064kKMdJ7yaMZAAAfk0lEQVQgBQUFlSZ2Nm/evF7fg8vlQl5envF9srOzqRD7ApKTk7Fq1SpGm4aGBoYPH85OoG/Us2fPsGbNGvHygAED8Msvv7CYqPHJzMxkFFrNmjVDdnY2fv311zqPdp09exb379/Htm3b6HmT9TRkyBD88ccfcHFxEd94u7i4GKdPn2bcM7Ki/v37w93dnfZ3A1AhRhqk4qRvoHSCZn0pKCgwCjG6zPzzy8vLw9y5cytdTu7m5kbzOOqBz+fDwcFB/Pw9RUVF+Pn5QUqKZnh8ThUfmSMtLY158+YxijBDQ0MMHz4c7dq1g0AgwKtXrxASEsKYt5qcnIxffvkFR44cobmQ9dS/f3+cOXMGW7ZsQXBwcK1XT/bq1Qu2trZUhDUQFWKkQaq6NJnL5db7+1QsBMo/h5J8ury8PMyZM6fSHA8rKysMGzaMpVTfJi8vL7x8+VK8vHLlSqipqbGYqHGq+GGsfAGmqqqKdevWwcDAoFK/+fPnY//+/fD29kZJSQmA0tuz2NvbV3pWJanZo0ePEBAQgKtXr9bpxqxPnjzBTz/9hCFDhsDT05NeF/VEH+VIg5S90ZXXkJGBioVYXe9bQ2pXdjqn4m1GBgwYQFf41VNoaCjjBqOTJ0/G6NGjWUzUeFV3wY6SkhIOHjxYZREGlL7/zJgxA15eXoz227dvM+b0kZrt3r0b06ZNw5UrV8RF2JAhQxAYGIgrV67g4cOHiIqKwq5duzB58mTIyHwcz7l69SosLS0ZH1hI7agQIw1S/sVXpqrirDYVR9Z4PF6DM5GPEhMT8f333+Pu3buM9r59+yIoKKhBo5f/VcnJyYzHSGloaNTrLu/k81ixYgXU1dVr3c7c3BzGxsaMtj179nypWI3KoUOH4O3tLT4zwePx4Ovri507d2L06NFQVVUFj8eDkpISBg8eDE9PT/zzzz+M/5e0tDRYW1sjLy+PrV/jm0OFGGmQqh6625BbT1Ah9vk9fPgQ06ZNw6tXrxjturq62LVrV40PBydMQqEQzs7O4nlLXC4Xa9asadB8SFI3VX3I09DQqNfNcmfOnMlYvn37Nvh8/qdGa9QSExPh7e3NaFu9ejXMzc1r7NezZ0/s2rULioqK4raEhARs3rz5i+RsjKgQIw3SrFmzSqcVG/IJqOwZfWXqe+UlYTp58iR++OEHvHv3jtFediVUfZ5LSYCtW7cynviwYMECaGlpsZio8WvSpEmltqFDh9brKRC6urqMYlkgECA6Ovqz5Gus9u3bx7gIy9DQEGZmZnXq27FjR9jZ2THaDh8+TMVvHdFkfdIgHA4HLVu2ZDyrMDMzs163nsjJyak0IkaPxWgYkUiEgIAAbN26tdI6c3NzrF69mk5H1tPjx48Zn+rbtGmD3r17IzIyssZ+FZ/fWVhYWKlPly5d6B5X1VBSUqrUpqGhUa/vISMjA3V1dcaNYdPT0z81WqN28eJFxvK0adPq1d/S0hJ+fn7iYi43Nxf379/HgAEDPlvGxooKMdJg7du3Z/zRSUlJQa9evercPyUlhbHcokULOuXTAO/fv4ejo2OlN1IAsLW1pbtcN9CzZ88YV/EmJSU16J5haWlplR5m7+3tDQsLi0/O2BgpKSlBTk6OMZpS1VSI2lQc/c3Nzf3kbI0Vn89HTEwMo62+j5WSlZVFnz59cPPmTXHby5cvqRCrAzo1SRqs4gOn37x5U6/+sbGxjOWanmdGqpaeno4ZM2ZUKsJ4PB78/f2pCCPfHA6Hg44dOzLaKj7Foy4qTnugR1BVLzs7u1JbixYt6v19WrVqxVim4rduqBAjDda3b1/GcsXH59Tm4cOHjOX6jKaR0qv5rKys8OjRI0a7kpIS9uzZgwkTJrCUjJBPU3EeXsXRmrqoOOLetm3bT4nUqFV1JqLiKfa6qHgPOJqTWjd0apI0WMUh5+vXr0MkEtV5Um3FeTODBw/+bNkau7S0NPz888+V/kB16tQJwcHBjIckk4axsLBo0OnD+Ph4fPfdd+JldXX1Kk8bk+oNHDgQhw8fFi+HhYWhqKiozvMcX716xbhDP5fLRdeuXT97zsaiWbNmkJeXZ0zWf/LkCdq1a1ev71N+Th4AeqJBHdGIGGmwzp07MybRpqam4urVq3Xq+/r1a8aIWJMmTTBw4MDPHbFRKi4uhq2tbaUiTFdXF3/99RcVYeSbN2zYMMjKyoqXs7KycPbs2Tr3P3LkCGN5wIABdGqyFvr6+ozlY8eO1av/7du3kZSUJF6WkZGp9ua7hIkKMfJJpkyZwlhev359ne4ntmbNGsajMyZOnEgT9eto7dq1lW7U2r9//0r38iHkW9WsWTNMnDiR0ebj44OcnJxa+8bFxVV6pFHF9ylS2ZgxYxjLFy9exJUrV+rUt6ioCH5+foy2wYMHN2ie2X8RFWLkk0yfPh0tW7YULz9+/Biurq413mXf39+fcapGVlYWc+bM+aI5G4sHDx5g165djLbOnTsjKCiIPvGTRsXGxoZxtWRqaiqsra2RkZFRbZ/U1FTY2Ngw5ip169atXjeD/a8yMzNjnOEQiURwcXGp9KGvIoFAABcXF9y7d0/cJiUlBXt7+y8VtdHhiOryRE9CanDkyBG4uroy2nR1dbFkyRLGJdAvX77EunXrcOHCBca2Dg4OmDt3rkSyfut+/fXXSp9SlyxZgu7duzf4e/br149xGoh8Gpoj9vkcPnyY8XgpoHR/zp07F+bm5uLjViAQ4OzZs1izZg1jkr6MjAz27dsHPT09ieb+Vt28eROzZs1i3N9RRkYGM2bMwLRp0xhXygsEAoSHh2PDhg14/vw54/vMnz8fixYtkljubx0VYuSz8PT0xN69eyu1q6iooHXr1sjMzERCQkKl9aNGjUJgYGC97pr9X/Xy5UuMHz/+s3/fCxcu1HtSLqkeFWKf1+7du+Hj44OKf6q4XC7at28PHo+HuLi4SlfscTgcrFq1ik5L1tPJkyfh4uLCuIdemVatWkFNTQ1FRUWIi4ur8s75FhYW8PLyovf0eqCrJsln4e7uDgUFBQQHB0MoFIrbU1NTq70HkKWlJVauXEkv2DoKDw9nOwIhEjdz5kwoKytj1apVjCshi4qK8Pr16yr7NGvWDCtXrsS4ceMkFbPRMDU1hZqaGhwdHZGcnMxYl56eXu0TCrhcLhwdHSvdvJjUjuaIkc/G3t4e//77L4YNG1bjZea6uroIDg6Gl5dXlQ/4JVWLj49nOwIhrDA1NcW5c+cwe/bsGm+J0KxZM/z44484deoUFWGfQF9fHyEhIXB3d6904+6KFBUVYWVlhbNnz1IR1kB0apJ8Ebm5ubh58ybevXuHrKwsyMnJQU1NDTo6OlBTU2M7HiHkGyX6f3t3HlZVmccB/Mt2WQ24Kio4jhaLhWwuYTWUuxVgmGgmI4RF6TNGKZbDSJaIgTapKY1TjSOhV1FMxBWNISOpcQsQyX0USfQiAiqLbJf5w0cezz2Xy714r8fo+3me/jg/3vO+r5w/+PWura0oLi7GhQsXUFFRgYaGBjg4OMDV1RXe3t6QyWRSd7HLUSqVKCgowPXr13Hz5k1YWVnB0dERrq6uePzxx2FqyjGd+8FEjIiIiEgiTGOJiIiIJMJEjIiIiEgiTMSIiIiIJMJEjIiIiEgiTMSIiIiIJMJEjIiIiEgiTMSIiIiIJMJEjIiIiEgiTMSIiIiIJMJEjIiIiEgiTMSIiIiIJMJEjIiIiEgiTMSIiIiIJMJEjIiIiEgiTMSIiIiIJMJEjIiIiEgi5lJ3gIgeLr/++itGjx7dqXfNzc1hYWEBa2trODo6wtnZGT4+Phg+fDh8fX1hYWFh4N52DYcOHUJ4eLgg9p///Ad9+/bVWH7UqFG4fPly2/Ps2bPx9ttvG7WP+qqvr4e1tbXU3TCo1atXIzk5ue3ZxcUFOTk5EvaIugKOiBGRwTQ3N6O+vh6VlZU4f/48fvjhByQnJ+PPf/4zRo0aBYVCgcbGRqm7SUZ09epVzJ49G1lZWVJ3heg3gYkYET0Q5eXliI+PR3h4OKqrq6XuDhlYc3Mz/v3vf+OFF17At99+i9bWVqm7RPSbwKlJInqg8vPzERYWhi1btsDW1lbq7pCBTJw4EWfOnJG6G0S/OUzEiKhDEydORFJSUoflVCoVmpubUVNTg/Lychw7dgypqam4ePGioNy5c+ewYsUKxMXFGanH9KAxCSPqHCZiRGQwpqamkMlkkMvlkMvlGDhwICZPnoy4uDhkZmYKyioUCoSGhmLgwIES9fa3iwvEiboOrhEjIqOSyWRITEzE0KFDBXGVSgWFQiFRr4iIHg5MxIjI6MzMzDB//nxR/LvvvpOgN0REDw8mYkT0QHh7e4vOxbp27RqUSqVEPSIikh7XiBHRA+Ph4YFff/1VEFMqlejVq5fOdVy8eBFHjhxBVVUVnJ2dMWzYML3er6+vR0FBAZRKJSoqKmBqagq5XA4XFxf4+PhAJpPpXFdHbt68icLCQpSUlKCmpgZyuRx9+vTB0KFDH4rDTsvLy/HLL7+gtLQUNTU1sLa2hoODAzw8PODu7g4zMzPJ+nb9+nUcP34cFRUVqKqqgpWVFXr06IFHH33U4OsKr1y5gsLCQly9ehWNjY1wcnJCv3794OvrC1NTjleQcTERI6IHRlPy0dLSInjetm0bYmNj257Dw8OxYMECNDU1ITExEWlpaYJ3TE1NMWLECMydOxdubm7ttv3jjz9i3bp1OHToEBoaGjSWsbW1RUBAAGbOnInHH39c339em6KiIvzzn//E999/j6amJtHP7ezsEBQUhHfeeQdyuVzv+u/nZP3GxkZkZmZiy5YtOH78eLvlHnnkEYSEhCAyMhLOzs6in2u6DeBesbGxgu/45JNPYv369Vr71tLSgq1bt+Kbb75BUVERVCqVxnJOTk4YP348Zs6ciR49emitU5s9e/YgJSUFhYWFGn/u7OyMV199FZGRkbwVgoyGqT4RPTA3btwQxXRNRBYuXAiFQiFK3FQqFXJycrBv3z6N7ymVSrzxxhuIjIxEbm5uu0kYANTW1iIrKwsvv/wyYmNjUV9fr1Pf7mpsbER8fDwmT56M7OxsjUkYANTU1CAtLQ3BwcHIy8vTq4378dNPP+H5559HXFyc1iQMuDOal5qaisDAQKSnpxu9b0ePHkVQUBAWLlyIwsLCdpMw4M5I3vr16zF27FisW7dO77bKy8sxffp0zJkzp90kDADKysrw6aef4pVXXkFpaane7RDpgokYET0Qra2t+OWXXwQxc3NzODk5dfhuVlYWtm3bprXMCy+8IIqdPn0aU6ZMwQ8//KBXX1UqFbZt24bw8HBcv35dp3caGhoQFRUFhUKh86nyFRUVmDVrFo4ePapX/zpDoVAgMjJSMJKmi7q6OsTFxeGLL74wUs+A3bt3IzIyEv/73//0eq+urg5JSUmIi4tDc3OzTu+UlpYiNDQUhw8f1rmd4uJiREZG4tq1a3r1j0gXnJokogciNzdXlNR4e3t3uFaqoaGhw8Nk3d3d8dhjjwlily9fxvTp00WjcDY2NggODsZTTz2FPn36wMTEBFeuXEFeXh727NmDmpqatrLHjx9HVFQU0tLSOlw7FhcXh//+97+ieEBAAF588UX0798fAFBSUoKsrCwcOHCg7d+3evVqrXXfr7179yI+Pl4U7969OwIDA+Hv7w8nJyeoVCqcPn0aGRkZyM/PF5Rdvnw5Bg4ciOeeew7AnZHM8ePHt/1cfURy0KBBcHFxaXt2dXXV2Lfs7GzExMSIkldnZ2cEBwdjyJAh6N69O+rr63Hp0iXk5OQgJydHMGKWnp4OS0tLfPDBB1p/D/X19YiKihJtEJHJZAgODsbIkSPRu3dv1NbW4tSpU8jMzGz7n4fS0lJs2bJFa/1EncFEjIiM7tatW1i6dKkoPmbMmA7f3b17tyA58vLygq+vL1paWnD27FkcPXpUNBrW1NSEuXPnipKwsWPHIj4+XjQd6uPjg+effx7R0dFYuHCh4MDU4uJiLFu2TOstANnZ2dixY4cgZmdnh+XLl7clLncNHjwYEydOxE8//YS5c+eisrLSqPcyXrt2TWPfp0yZgvnz58POzk4Q9/X1xSuvvAKFQoGEhARBwvPBBx8gOzsbMpkMbm5uWLVqVdvPPDw8BPWEhYXh5Zdf1tq3srIy/O1vfxP8+01NTfGXv/wFb775pij5HTZsGCZNmoTi4mLMmzdPMIK2YcMG+Pv7Y9y4ce22t2LFCly4cEEQc3d3x2effYZHH31UEB8+fDgiIiKwfv16JCUloaWlhfdnklFwapKIjKqkpAQzZszA+fPnBXEHBwdMnTq1w/fvJmFWVlZITk7G1q1bERcXhw8//BAbNmzA3r17ERoaKnhn8+bNKCgoEMRCQ0ORnJysdU1az549kZycjKCgIEF8w4YNov7f1drais8++0wQs7CwwNq1a0VJ2L2eeuoppKam4pFHHmm3jCGsWbNGkMgCwIwZM7B48WJREnavsLAwREdHC2JKpRK7du0yWN+SkpJEyXJiYiJmz56tdQTS09MTCoVCtDnj448/bneKUqlUYtOmTYJYv3798PXXX4uSsLtMTEwQHh6u0/VeRJ3FRIyIDKaxsRFVVVU4efIkMjIyEB0djcDAQI0Lw2NiYvS69HvJkiUYO3asKD5gwADBOjOVSoWvv/5aUMbd3R2LFi3SqR0zMzMsXrwYvXv3bou1trYiJSVFY/kjR46I7ll866234Ovr22Fbbm5ueP/993XqV2fU1tYiIyNDEPP09ERMTIxO70dFRQmmF4E7Ow0NobS0FNnZ2YLY1KlTERISotP7crkcf//732FiYtIWu3LlCvbu3auxfHp6OhobGwWxhIQEnTaLTJgwAcHBwTr1i0hfTMSIqEMZGRnw8PDo8D8vLy8MHz4cISEh+Otf/4p9+/Zp3DkYEhKCKVOm6Nz+Y489hsDAQJ3KHjx4EJcuXRLEoqOjYW6u+0oMGxsbhIWFCWI7duwQ/SEHIBohsrS0xGuvvaZzW6GhofjDH/6gc3l95OTkoK6uThCbNWuWzr8Lc3NzwfSijY0N6urqDDJFt3nzZsEOWAsLC9EIXEcGDhyIZ555RhD75ptvNJZV/05+fn7w9/fXua13331XkPQRGQoTMSJ6oEJDQ5GQkKDXO88995zOfwQPHTokeLa1tdU6RdieESNGCJ5v376NEydOiMqpL9B/9tln0a1bN53bMTExwYQJE/Tuny7U+2Zvby/6d3VkypQpSE1NRW5uLvLz87Fx40aDJCTq38nf3x/du3fXu56RI0cKngsKCkTTk0qlUrQ27MUXX9Srnb59+4ruSyUyBCZiRPRADBkyBGvXrsWSJUv0PhzTz89P57LHjh0TPLu7u3fqtHxXV1fRez///LPg+caNGygpKRHEvL299W7LWH/gi4qKBM+DBg3S+3fv5OQEf39/vW4v6Eh9fT1OnjwpiHl6enaqLvWDd+vr60XHpGiaGvfx8dG7rSFDhuj9DlFHuGuSiAzGzMwMlpaWcHBwQK9evTBgwAB4e3vjT3/6031Nv7V39IEm586dEzxfvnxZ7ymvu9Svt1G/nkk9CQPuJH76MvSVPXepH0KqvrNRKhcvXhRNWX///fe4ePGi3nWpT70Cd77TvQmxpnq13cLQHmN9J/p9YyJGRB2aOHGipDvHHBwcdCrX0tIi2iFYXl7e7qn7+lLf4VdeXi4q4+joqHe9crkcFhYW7Z7E3xk1NTWiJKUzfTOG6upqUezUqVM4deqUQerv6DtZWlrCxsZG73rv3cBBZCicmiSih56uRzzcuHHDqGc93bx5U/CsaTRGn52ghnivPYbsm6FpuurKkNS/k/pVVQ/LNyICmIgR0W+Arrv8DDmipIn6rklD7qKztLQ0WF0Pu9/qd/o9fSN6cDg1SURdhqaRszlz5mDmzJlGaU/T9Uy3bt3qVF21tbX32x0BTb8LQ7fRWZr6tmnTJgwePNgo7al/p4flGxEBHBEjoi7E2tpaNGpRVlZmtPY0XViu6yXh92pubtY4lXg/rKysRLs+q6qqDNpGZ9nb24tixvxOPXv2FDw3NTV1KhlTn/IkMgQmYkTUpTg7Owue1Y8yMKQBAwaIYurHMuji/PnzgjsdDUX9VPyzZ892qp7k5GRs3LgRBw8eRElJyX1PLar3CzDud9J0hVFn2uvs749IGyZiRNSlqJ/1VFxcjMrKSr3raW5uRkpKCvbt24cTJ05oHE3q1q2b6BiEI0eO6N2WpnOuDEH9/LXi4mLBafa6qKysxOrVq7Fo0SK8/vrrGDdunOhqIn317NkT/fr1E8QOHjzYqbpKS0uhUChw4MABnD17VuPIop+fn2id2MP0nej3jYkYEXUpw4YNEzyrVCps3rxZ73qys7ORmJiI6OhoTJo0CcOHD8e//vUvUbmAgADB8+HDh3H58mW92tqxY4fe/dOF+pqryspK/Pjjj3rVceDAAVHMEAebqh9ie/r0adFhvLpYt24d4uPj8dZbbyEoKAh+fn6ihEkul+OJJ54QxLZv367XDtu6urr7TkCJNGEiRkRdytixY0WLwVNSUqBUKnWuo7m5GatWrRLFx48fL4rdexcjcOeC8BUrVujc1rFjxzo1OqOLcePGic7L+vLLL/VKQNLS0gTPgwYN0rg2zszMTK++TZo0SRT79NNP9RqxKy0tRXp6uiDm7OwMLy+vDtsrLS3F1q1bdW4rNTXV4Ov4iAAmYkTUxdja2mLq1KmCWHV1Nd555x2dd7198sknOH/+vCA2atQojbcDuLm5ie5v3LlzJ7Zt29ZhO5WVlYiNjTXa2Wf29vZ46aWXBLHDhw9j3bp1Or2/ceNGFBYWCmKvvvqqxrLqGwPUz+5SN3ToUPj6+gpix44d0/ng4MbGRsybN090VEVERITG4ypCQkLQo0cPQSwpKUmnQ2QLCwvx+eef69QvIn0xESOiLueNN94QLQjPz89HWFiY1gXXDQ0NSEhIQEpKiiBuYWGBOXPmtPvee++9J0pEFixYgLVr17a7CP/cuXOYPn26xmuSDGnWrFmimwmWLl2KVatWiZKYe23cuBFLliwRxNzc3Nq9oFx9FFL9qilNYmNjRXdfpqamIiYmRuu6PqVSiddffx0FBQWCuIuLC6ZNm6bxHVtbW9E3rKmpQUREBHJzc9ttKycnBzNmzND6uyK6HzxHjIi6HHt7e6xcuRLTpk0T7PA7efIkXnrpJYwePRojRozAH//4R9jY2KCiogI///wzMjIycPXqVVF97733ntY7JF1dXREbG4tFixa1xVQqFZYtW4bt27dj0qRJeOKJJ2BtbY2ysjJ899132LVrV1vfbGxs0NjYiObmZgP+Fu7o1asXkpKSRGepff7559i5cycmTJgAPz8/yOVy1NXVobi4GJmZmSguLhaUl8lk+Pjjj9u9QN3Z2Vkw/Zueno6+ffviySefRGtrK5qamkRry3x9fTFv3jwkJiYK4rt27cKBAwcQFBSEp59+Gr1794apqSnKysqQl5eHnTt3iqYJLSwssHLlSq0XvIeGhiIvLw979uxpi1VXVyMqKgrPPvssAgMD0b9/f6hUKly4cAG7d+9GXl5eW1l7e3uj3wpAvz9MxIioS/L29saaNWvw7rvvCu6fbGlpwf79+7F//36d6nnzzTcRERHRYblp06bh+vXrSE5OFsTPnDkjSjTuZWJigqVLl2L+/PlGScQAYOTIkUhISMBHH30kaOPSpUui/mpibm6OlStXCi7SVjd48GDk5+e3PTc1NWHZsmVtzz179tS4M/K1117D7du3sXLlSsEUbU1NDdLS0kRr1DSxtLTE8uXLtfbvrqVLl+LmzZuivuTm5modGXNwcMCHH36odWSUqDM4NUlEXVZAQAA2b96s0x9odQ4ODkhMTERMTIzO77z99tv45JNPYGdnp1N5mUyGjz76COPGjdO7f/qaPHkyvvrqK41neGnj4uKC1NRUjB49Wmu5qKgo0cGp97p27Vq7040zZ85EcnJypy7VdnV1RWpqKsaMGaNTeZlMhi+++AIzZsyAqalufwKdnJywZs0ajWsEie4XEzEi6tJcXV2Rnp6Of/zjH3jmmWc6vC/QxcUFs2fPxt69e0U7InUxYcIE7N+/HxEREaK1WXeZmZkhICAA6enpoo0FxvT0008jKysLsbGx8PDw0FrWxcUF77//Pnbu3KnTcRWOjo7YtGmT6Oyye2lbGD9mzBh8++23WLBgATw9PTu8H9LLywuLFy/G9u3bRYv+O2Jubo758+cjIyMD48ePF61Tu8vGxgaTJ09GZmam0a5fIjJpNdZ2HSKih9Dt27dRUFCAq1evorq6Grdv34adnR169OgBT09Pg456NDY24sSJEzhz5gxu3LgBGxsb9O7dGz4+PhqPgHjQlEolioqKUFFRgerqalhZWaF79+7w8vJC//79O13vqVOnUFRU1HbdU7du3dC3b1/4+vpqvN5Ik8rKShw/fhwVFRWoqqpCa2srunXr1nY8hVwu73T/1N26dQv5+fkoKSlBbW0tHB0d0adPHwwdOlR0/AeRoTERIyIiIpIIpyaJiIiIJMJEjIiIiEgiTMSIiIiIJMJEjIiIiEgiTMSIiIiIJMJEjIiIiEgiTMSIiIiIJMJEjIiIiEgiTMSIiIiIJMJEjIiIiEgiTMSIiIiIJMJEjIiIiEgiTMSIiIiIJMJEjIiIiEgiTMSIiIiIJMJEjIiIiEgiTMSIiIiIJMJEjIiIiEgiTMSIiIiIJMJEjIiIiEgiTMSIiIiIJMJEjIiIiEgi/wdoxipc5LHCiQAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<Figure size 600x600 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "from sklearn.metrics import confusion_matrix\n",
    "cm = confusion_matrix(y_test, lm_predictions_test_homemade)\n",
    "sns.heatmap(cm,\n",
    "            annot=True,\n",
    "            fmt=\"d\",\n",
    "            cmap=\"Blues\",\n",
    "            annot_kws={\"size\": 6},\n",
    "            cbar=False)\n",
    "plt.ylabel('True')\n",
    "plt.xlabel('Predicted')\n",
    "sns.set(font_scale=1)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Better Feature Set: The Raw Data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 140,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "D:\\Programing\\Anaconda3\\lib\\site-packages\\sklearn\\linear_model\\_logistic.py:940: ConvergenceWarning: lbfgs failed to converge (status=1):\n",
      "STOP: TOTAL NO. of ITERATIONS REACHED LIMIT.\n",
      "\n",
      "Increase the number of iterations (max_iter) or scale the data as shown in:\n",
      "    https://scikit-learn.org/stable/modules/preprocessing.html\n",
      "Please also refer to the documentation for alternative solver options:\n",
      "    https://scikit-learn.org/stable/modules/linear_model.html#logistic-regression\n",
      "  extra_warning_msg=_LOGISTIC_SOLVER_CONVERGENCE_MSG)\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "LogisticRegression(C=1.0, class_weight=None, dual=False, fit_intercept=True,\n",
       "                   intercept_scaling=1, l1_ratio=None, max_iter=10000,\n",
       "                   multi_class='auto', n_jobs=None, penalty='l2',\n",
       "                   random_state=None, solver='lbfgs', tol=0.0001, verbose=0,\n",
       "                   warm_start=False)"
      ]
     },
     "execution_count": 140,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "lm = LogisticRegression(max_iter=10000)\n",
    "lm.fit(X_train, y_train)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 141,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Training Accuracy: 0.9501705756929637\n",
      "Test Accuracy: 0.9081818181818182\n"
     ]
    }
   ],
   "source": [
    "lm_predictions_train_raw = lm.predict(X_train)\n",
    "lm_predictions_test_raw = lm.predict(X_test)\n",
    "print(f\"Training Accuracy: {accuracy_score(y_train, lm_predictions_train_raw)}\")\n",
    "print(f\"Test Accuracy: {accuracy_score(y_test, lm_predictions_test_raw)}\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 151,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 600x600 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "cm = confusion_matrix(y_test, lm_predictions_test_raw)\n",
    "sns.heatmap(cm,\n",
    "            annot=True,\n",
    "            fmt=\"d\",\n",
    "            cmap=\"Blues\",\n",
    "            annot_kws={\"size\": 8},\n",
    "            cbar=False)\n",
    "plt.ylabel('True')\n",
    "plt.xlabel('Predicted')\n",
    "sns.set(font_scale=1)\n",
    "plt.savefig(\"raw_data_cmatrix.png\", dpi=300, bbox_inches=\"tight\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Even Better: Histogram of Gradients"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 143,
   "metadata": {},
   "outputs": [],
   "source": [
    "from skimage.feature import hog\n",
    "\n",
    "\n",
    "def hogify(X):\n",
    "    return hog(X.reshape(28, 28),\n",
    "               orientations=8,\n",
    "               pixels_per_cell=(4, 4),\n",
    "               cells_per_block=(1, 1),\n",
    "               feature_vector=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 144,
   "metadata": {},
   "outputs": [],
   "source": [
    "X_train_hog = np.apply_along_axis(hogify, 1, X_train)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 145,
   "metadata": {},
   "outputs": [],
   "source": [
    "X_test_hog = np.apply_along_axis(hogify, 1, X_test)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 146,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(46900, 392)"
      ]
     },
     "execution_count": 146,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "X_train_hog.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 147,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "D:\\Programing\\Anaconda3\\lib\\site-packages\\sklearn\\linear_model\\_logistic.py:940: ConvergenceWarning: lbfgs failed to converge (status=1):\n",
      "STOP: TOTAL NO. of ITERATIONS REACHED LIMIT.\n",
      "\n",
      "Increase the number of iterations (max_iter) or scale the data as shown in:\n",
      "    https://scikit-learn.org/stable/modules/preprocessing.html\n",
      "Please also refer to the documentation for alternative solver options:\n",
      "    https://scikit-learn.org/stable/modules/linear_model.html#logistic-regression\n",
      "  extra_warning_msg=_LOGISTIC_SOLVER_CONVERGENCE_MSG)\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "LogisticRegression(C=1.0, class_weight=None, dual=False, fit_intercept=True,\n",
       "                   intercept_scaling=1, l1_ratio=None, max_iter=100,\n",
       "                   multi_class='auto', n_jobs=None, penalty='l2',\n",
       "                   random_state=None, solver='lbfgs', tol=0.0001, verbose=0,\n",
       "                   warm_start=False)"
      ]
     },
     "execution_count": 147,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "lm = LogisticRegression()\n",
    "lm.fit(X_train_hog, y_train)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 148,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Training Accuracy: 0.9853091684434968\n",
      "Test Accuracy: 0.9708225108225108\n"
     ]
    }
   ],
   "source": [
    "lm_predictions_train_hog = lm.predict(X_train_hog)\n",
    "lm_predictions_test_hog = lm.predict(X_test_hog)\n",
    "print(f\"Training Accuracy: {accuracy_score(y_train, lm_predictions_train_hog)}\")\n",
    "print(f\"Test Accuracy: {accuracy_score(y_test, lm_predictions_test_hog)}\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 150,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 600x600 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "cm = confusion_matrix(y_test, lm_predictions_test_hog)\n",
    "sns.heatmap(cm,\n",
    "            annot=True,\n",
    "            fmt=\"d\",\n",
    "            cmap=\"Blues\",\n",
    "            annot_kws={\"size\": 8},\n",
    "            cbar=False)\n",
    "plt.ylabel('True')\n",
    "plt.xlabel('Predicted')\n",
    "sns.set(font_scale=1)\n",
    "plt.savefig(\"hog_model_cmatrix.png\", dpi=300, bbox_inches=\"tight\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.9"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
